Админим с Буквой
5.5K subscribers
302 photos
8 videos
59 files
1.15K links
Канал о системном администрировании, DevOps и немного Инфобеза.

По всем вопросам обращаться к @bykva. Рекламу не размещаю.
Download Telegram
Освобождаем удалённые файлы без перезапуска процесса

Предыстория: Некоторые процессы не отпускают файловые дескрипторы (указатели на файл на диске) даже после удаления файла. Тогда при исследовании занимаемго места способом du -hs вы не найдете файлы, при этом df -h покажет что место используется. В таком случае это скорее всего именна та ситуация. Проверить можно с помощью lsof | grep deleted | less. Самый простой способ решить проблему - перезапустить процесс. А если это не представляется возможным - подойдёт вот такой вариант:

1. Находим какие файлы удалены, изучаем что хотим освободить.

# find /proc/*/fd -ls 2> /dev/null | grep '(deleted)' | grep logstash
1945358443 0 l-wx------ 1 www-data www-data 64 Sep 12 14:26 /proc/1058699/fd/21 -> /opt/www/.pm2/logs/pm2-logstash-out.log\ (deleted)
1945358444 0 l-wx------ 1 www-data www-data 64 Sep 12 14:26 /proc/1058699/fd/22 -> /opt/www/.pm2/logs/pm2-logstash-error.log\ (deleted)

2. Руками или скриптом формируем очищение файла (файлов)

# truncate -s 0 /proc/1058699/fd/21

#linux #filesystem