Meu primeiro palpite seria que qualquer programa que estivesse escrevendo para file.foo
ainda estivesse ativo e mantendo o arquivo aberto: O espaço em disco é "livre" apenas aos olhos do kernel quando a última referência ao inode (arquivo ) está desmarcada e os programas que possuem o arquivo aberto contam como referência. Para o futuro: Quando você mover ou excluir um arquivo de log lembre-se de informar o programa que o utiliza - Se você quiser realmente estar seguro, reinicie o programa em questão.
Desde que você reiniciou, embora isso seja teoricamente impossível - todos os programas deveriam ter sido eliminados, então quaisquer referências que eles possuíssem teriam ido embora também. Isso deixa duas possibilidades que eu posso pensar:
-
Você tem um link físico no arquivo que você não conhece.
Se esse for o caso,du
edf
devem concordar com a quantidade de espaço que você está usando no sistema. -
Seu sistema de arquivos está corrompido. Provavelmente no modo em que um inode tem uma contagem de referência positiva, mas não é apontado por nenhum objeto do sistema de arquivos. Isso é relativamente fácil (embora demorado) para verificar: Na maioria dos sistemas Linux, você pode forçar uma verificação do sistema de arquivos durante a reinicialização, criando um arquivo chamado
/forcefsck
(touch /forcefsck
as root fará o truque) - e reinicie e aguarde (um tempo!) enquanto o seu sistema varre seus sistemas de arquivos procurando coisas como "perdidos" inodes com contagens de referência complicadas.