Классическая ситуация: удалили большой лог, df все еще показывает, что диск забит.
Ответ: файл удален из файловой системы, но процесс всё ещё держит его открытым.
▪️ Почему так происходит
В linux файл удаляется не сразу. Если процесс держит дескриптор: файл исчезает из каталога, но данные остаются на диске пока процесс не закроет файл
▪️ Как найти такие файлы
lsof | grep deleted
Пример вывода:
nginx 1234 user 10w REG ... /var/log/nginx/access.log (deleted)
Это значит: файл удален, но процесс nginx все еще его держит
▪️ Найти самые тяжелые
lsof -nP | grep deleted | sort -k7 -nr | head
Так можно быстро увидеть, кто реально съедает место.
▪️ Что делать
Вариант 1 - перезапустить сервис
systemctl restart nginx
Процесс закроет файл и место освободится.
Вариант 2 - убить процесс
kill 1234
(если можно безопасно остановить)
Вариант 3 - обнулить файл через
/proc
: > /proc/1234/fd/10
Где:
1234 - PID
10 - дескриптор из lsof
Это освободит место без перезапуска процесса.
BashTex 📱 #storage