Olá, tenho muitos arquivos que foram excluídos, mas, por algum motivo, o espaço em disco associado aos arquivos excluídos não pode ser utilizado até que eu explique explicitamente o processo do arquivo que ocupa o espaço em disco
$ lsof /tmp/
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
cron 1623 root 5u REG 0,21 0 395919638 /tmp/tmpfPagTZ4 (deleted)
O espaço em disco ocupado pelo arquivo excluído acima causa problemas, como ao tentar usar a tecla tab para preencher automaticamente um caminho de arquivo. Eu recebo o erro bash: cannot create temp file for here-document: No space left on device
Mas depois que eu executo kill -9 1623
o espaço para esse PID é liberado e não recebo mais o erro.
Minhas perguntas são:
- por que esse espaço não é liberado imediatamente quando o arquivo é excluído pela primeira vez?
- qual é a melhor maneira de recuperar o espaço no arquivo associado aos arquivos excluídos?
e informe-me de qualquer terminologia incorreta que usei ou de qualquer outra informação relevante e pertinente sobre essa situação.
fonte
Como outros já disseram,
lsof
pode ser usado para listar todos os arquivos excluídos que ainda estão no disco devido aos descritores de arquivos abertos. No entanto, essa pode ser uma lista muito longa. Aqui está um comando que lista esses arquivos classificados por tamanho crescente em bytes:Pode haver uma maneira mais sucinta de fazer isso, mas o comando acima funcionou para mim.
fonte
O espaço não é liberado imediatamente porque o processo em execução ainda possui um identificador de arquivo aberto para o arquivo recém-excluído. Afinal, se um processo ainda está tentando usar um arquivo, você provavelmente não quer que o kernel se livre dele (o arquivo). Isso pode tornar o processo um pouco chateado. A melhor (e única, até onde eu sei) maneira de liberar espaço é fazer exatamente o que você fez - matar o processo.
fonte
(Casa da moeda 17.1)
TL; DR:
sudo baobab
(Disk Usage Analyzer).root
a lixeira do usuário.Contexto
Fiquei preso com o espaço cada vez menor enquanto excluía constantemente os arquivos. Instalei o
trash-cli
pacote para esvaziar o lixo, mas isso não ajudou. Por fim, notei que, quando executeibaobab
(Disk Usage Analyzer na GUI, pelo menos no Mint 17.1) para inspecionar a estrutura do espaço em disco, ele avisou que algumas pastas não estavam acessíveis. Então eu executei comoroot
usandosudo baobab
. Isso revelou o problema. Muitos arquivos que foram excluídos estavam na lixeira doroot
usuário, não no meu próprio usuário. Assim, não pude liberar o espaço. Simplesmente esvaziei o lixo usando como root (sudo trash-cli
) e todo o meu espaço retornou.fonte
Tente usar o comando abaixo
e depois mate o pid do arquivo excluído.
fonte