Linux: пасля выдалення файла месца не вызваляецца

Столкнулся сегодня с такой проблемкой: дурацкий minidlna весь день грузил процессор на все 100 процентов. Я проигнорировал это проблему, однако потом у меня сломалась Samba, и ни одна шара не работала. паглядзеў, что же там с местом на диске:

df -h

И он мне показал, что в корне не осталось места!
Далее я пошел исследовать по всему корню, что же где не так.

cd /
du -h --max-depth 1

І знайшоў праблему: тэчка / var важыла 85ГБ! А дакладней тэчка log. У ёй сядзеў minidlna.log файл памерам ва ўсе 85ГБ! Ну і вядома ж я выдаліў яго з дапамогай “rm -rf /var/log/minidlna.log”

Але месца так і не вызвалілася. Увогуле, inode файла был все еще открыт и он все еще занимал 85ГБ.

Рашэнне

Запускаем

lsof | grep deleted | grep minidlna.log

І бачым такую ​​карціну

chrome     3446       user  128u      REG              253,2              16400       2364626 /var/log/minidlna.log (deleted) 

Нам цікавая лічба 3446 (нейкі айдишник карацей). Далей трэба знайсці спасылку на гэты файл у / proc / * наш айдишник * / fd / * спасылка на файл *. Гэта робіцца так

ls -l /proc/3446/fd | grep minidla.log

Ну атрымліваем прыкладна такую ​​рэч:

lrwx------. 1 user unix 64 Feb 11 15:31 128 -> /var/log/minidlna.log (deleted)

Тут нам цікавы файл 128. Далей абнулім гэты файл:

cat /dev/null > /proc/3446/fd/128

Ну и, уласна, место освободится после этой операции.

Загрузка

Гэтая запіс была апублікаваная ў Кампутары і адзначаных , , , , , , , . Закладка Пастаянная спасылка. | Кароткая спасылка:  http://p1rat.ru/lezzz/GjZvh

Адзін адказ на Linux: пасля выдалення файла месца не вызваляецца

Пакінуць каментар