Назад | Перейти на главную страницу

Почему df -h по-прежнему показывает 100% заполнение даже после удаления файлов?

Дисковое пространство на моем веб-сервере Ubuntu, работающем в DigitalOcean, похоже, заполнено. Я уже нашел и удалил большой файл журнала и перезапустил Nginx. Однако проблема все еще остается.

df показывает, что он еще полон:

$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   47G   22M 100% /

Но du показывает, что он не заполнен:

$ du -shx /
3.2G    /

Что мне нужно сделать, чтобы решить эту проблему?

Сначала проверьте, не ссылаются ли какие-либо процессы на удаленный файл:

$ sudo lsof / | grep deleted

В моем случае это показывало, что tail все еще использовал его:

tail      18961       root    3r   REG  253,1 46511271936 1189657 /var/www/myapp/shared/log/production.log (deleted)

Бег ps x и фильтрация по имени процесса показала мне идентификатор процесса, который мне нужно было убить:

$ ps x | grep tail
 3376 pts/1    S+     0:00 grep --color=auto tail
18961 ?        Ss     0:00 tail -f /var/www/myapp/current/log/production.log

В данном случае 18961 был идентификатором процесса. Теперь завершите процесс:

kill 18961

Сейчас df показывает, что снова есть свободное место:

$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G  3.3G   44G   7% /