Столкнулся сегодня с такой проблемкой: дурацкий 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
Ну и, уласна, место освободится после этой операции.
Адзін адказ на Linux: пасля выдалення файла месца не вызваляецца