Sobes.tech
Senior

Ik heb een groot bestand verwijderd, maar de ruimte op de schijf is niet vrijgemaakt. Waarom? Hoe vind ik het en los ik het op?

sobes.tech AI

Antwoord van AI

Если вы удалили большой файл, но место на диске не освободилось, вероятные причины:

  1. Файл всё ещё открыт процессом. В Unix-подобных системах удаление файла удаляет имя из файловой системы, но если процесс держит дескриптор на файл, место не освобождается, пока процесс не закроет файл.

  2. Удаление произошло не в том месте или на другом разделе.

  3. Файловая система или кэш не обновились сразу.


Как найти проблему:

  • Используйте команду lsof (list open files) для поиска процессов, которые держат удалённые файлы:
lsof | grep '(deleted)'

Это покажет файлы, которые были удалены, но ещё открыты процессами.

  • Если нашли процесс, который держит файл, можно:
    • Перезапустить процесс, чтобы он закрыл файл.
    • Или, если возможно, попросить процесс закрыть файл программно.

Пример исправления:

# Найти PID процесса, который держит удалённый файл
lsof | grep '(deleted)'

# Перезапустить процесс (например, по PID 1234)
kill -HUP 1234
# или
kill 1234

После этого место на диске освободится.

Если lsof не установлен, можно использовать fuser:

fuser -v /path/to/deleted/file

В Go-приложениях иногда файлы логов или временные файлы могут оставаться открытыми, поэтому важно корректно закрывать файлы.