Зіткнувся сьогодні з такою проблемкою: безглуздий 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
Ну і, власне, місце звільниться після цієї операції.