Такое бывает часто на Linux, только обычно этого не кто не замечает если файлик маленький, а перезагрузка сервера решает эту проблему. Но когда файл большой (несколько ГБ) и место не освободилось заметно сразу, а еще если и перезагрузить нельзя, что же тогда делать.
df -h
Показало, что мало место, путем не большого поиска находим источник занятого места. В моем случае это mysql-slow.log.
rm -rf /var/log/mysql-slow.log
Файл удален, а место то не освободилось.
Решение:
lsof | grep deleted | grep mysql-slow.log
mysqld 7206 mysql 10w REG 253,0 3839285 1966592 /var/log/mysql-slow.log
Интересным в этом выводе будет цифра 7206. Ищем ссылку на типа /proc/*наш id*/fd/*ссылка на файл*
ls -l /proc/7206/fd | grep mysql-slow.log
И видим следующее:
l-wx—— 1 root root 64 Dec 25 10:00 10 -> /var/log/mysql-slow.log
Собственно временный файл найден, обнуляем его и радуемся освободившемуся месту.
cat /dev/null > /proc/7206/fd/10
По видимому таким образом можно восстановить удаленный файл linux из временного. Если он конечно остался в системе.