Попробуйте это:
http://www.cyberciti.biz/tips/freebsd-why-command-df-and-du-reports-different-output.html
Если файлы удаляются (с помощью команды rm), когда они открываются или используются программой / процессом Linux, возникает проблема "открытого дескриптора файла", которая вводит в заблуждение файловую систему Linux, сообщая реальную цифру используемого дискового пространства или свободное место на диске.
Чтобы решить поддельную проблему "дискового пространства заполнено", т. Е. Вернуть "использованное дисковое пространство", вам нужно убить или прекратить "несуществующий процесс" - в этом случае команда rm, которая превращается в несуществующий процесс, в то время как файлы используются.
Как только эти несуществующие процессы будут завершены, проблема "открыть дескриптор файла" будет решена, и обе команды du и df согласятся сообщить о реальной файловой системе, использовавшей место на диске или свободное место на диске!
Как обнаружить и завершить или уничтожить несуществующие процессы, вызывающие проблему с дескриптором открытого файла, чтобы устранить разницу в используемом дисковом пространстве в командах du и df?
Для этого конкретного сценария команда lsof (команда list open file) отлично подходит для отображения света:
#lsof | grep "deleted"
и найдите идентификатор процесса Linux во втором столбце вывода команды lsof. Седьмой столбец - это размер файла, который "удаляется" (но не успешный и оказывается несуществующим процессом).
Теперь вам просто нужно уничтожить идентификаторы процессов Linux, чтобы увидеть правильный вывод DU и DF. Используйте следующую команду для уничтожения идентификаторов процессов
#lsof | grep "deleted" | awk '{print $2}' | xargs kill -9
Теперь проверьте использование диска обеими командами; ты не должен понимать разницу.