
Eu tenho uma discrepância estranha. Com "df" vejo que meu disco raiz está usando quase 229G.
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/dm-2 241G 229G 13G 96% /
mas "du" me diz que tenho apenas cerca de 12 GB (arredondado) em uso.
# du -sh /* | grep G
3.2G /run
2.1G /usr
6.0G /var
Ambos os comandos foram executados como root. O que eu poderia imaginar é que existem dados "ocultos" em um diretório onde agora um compartilhamento NFS está montado. Se esse é o caso. Como posso descobrir quais arquivos estão "ocultos". Ou você tem outras ideias de por que esses números são tão diferentes?
Responder1
Você provavelmente tem um aplicativo/processo que possui esse arquivo aberto. Quando você exclui um arquivo que está aberto por um aplicativo, o sistema operacional ainda vê o tamanho do arquivo em df, pois o arquivo ainda está aberto na memória.
Aqui está alguma documentação que escrevi para um colega de trabalho que deve fornecer o que você precisa.
Truncar arquivos abertos grandes
Você excluiu arquivos para liberar espaço, mas o espaço não foi liberado posteriormente. Agora df -lah e du -lah mostram tamanhos diferentes
Use LSOF para obter arquivos excluídos, mas retidos
lsof |grep deleted
Isso mostrará todos os arquivos excluídos, mas mantidos abertos por um aplicativo.
java 2943 gateway 410w REG 253,3 50482102 139274 /opt/span/app/node/default/var/attachments/att180368_0.part (deleted)
java 2943 gateway 411w REG 253,3 46217973 139284 /opt/span/app/node/default/var/attachments/att182230_0.part (deleted)
java 2943 gateway 412w REG 253,3 50483894 139280 /opt/span/app/node/default/var/attachments/att181920_0.part (deleted)
Você pode reiniciar o aplicativo para desbloquear arquivos ou truncá-los.
Para truncar os arquivos você terá que olhar a saída acima para obter o PID e fd (número do descritor de arquivo).
truncar o arquivo com
echo > /proc/PID/fd/fd_number
Exemplo: para zerar o tamanho do arquivo dos três listados acima, você emitiria o seguinte
echo > /proc/2943/fd/410
echo > /proc/2943/fd/411
echo > /proc/2943/fd/412
se você tiver muitos para truncar o bash para o resgate.
for n in {410..412}; do 'echo > /proc/2943/fd/$n'; done;
df -lah deve mostrar espaço livre agora, MAS os arquivos serão exibidos em lsof |grep excluídos, mas terão tamanho 1
java 2943 gateway 410w REG 253,3 1 139274 /opt/span/app/node/default/var/attachments/att180368_0.part (deleted)
java 2943 gateway 411w REG 253,3 1 139284 /opt/span/app/node/default/var/attachments/att182230_0.part (deleted)
java 2943 gateway 412w REG 253,3 1 139280 /opt/span/app/node/default/var/attachments/att181920_0.part (deleted)
Os descritores de arquivos serão liberados na próxima reinicialização ou reinicialização/recarregamento do aplicativo que abriu os arquivos.
É claro que você terá que ajustar seus comandos para corresponder à saída dos arquivos bloqueados.
Responder2
No meu caso (e você me ajudou em um PM dizendo o mesmo) foi um problema excessivo. Eu tinha alguns dados em um diretório da partição, que du
não pude ver, porque uma montagem os ocultou.
Então tentedesmontar todas as montagense procure dados nos diretórios restantes.
Tenha um bom tempo e obrigado!