После удаления большого файла, сколько времени займет `df`, чтобы получить изменения?

12

Я удалил файл журнала размером 2,3 ГБ на своем сервере Ubuntu, и df, похоже, не собирал изменения. Обычно ли задержка, прежде чем dfобнаружится, что большой файл был удален?

Дан
источник

Ответы:

20

Похоже, файл все еще открыт каким-то процессом. Вам нужно будет перезапустить эту службу, чтобы освободить место на диске.

toppledwagon
источник
1
Особенно вероятно, что это верно для файлов журналов. Многие программы открывают свои журналы при запуске и не закрывают их до выхода.
Mattdm
1
И вы можете узнать, используется ли он еще и кем использует lsof
Joris
Отличный вопрос и отличный ответ. Я задавался вопросом об этом в течение некоторого времени. Кроме того, вы можете получить его, чтобы закрыть дескриптор файла, отправив ему SIGHUP. Например, если у процесса 12345 открыт «удаленный» файл, он sudo kill -HUP 12345может закрыть его. (Конечно, это зависит от того, как этот процесс обрабатывает сигнал SIGHUP. Но многие файлы, ориентированные на демона, закроют и снова откроют дескрипторы файлов, когда они получат сигнал SIGHUP.)
Марк Э. Хаас
Я думал, что мы не можем удалить открытые файлы!
Ашиш Карпе
1
@AshishKarpe Нет, вы можете удалить открытый файл, но процесс, в котором он открыт, сохранит содержимое файла на диске. Теперь этот файл невидим для других процессов, поскольку на него не ссылается ни одно существующее имя файла, но процесс, у которого он открыт, все еще может читать и записывать его. Как только этот процесс закроет файл, содержимое будет удалено, освободив место на диске.
Джонатан Хартли,
2

Если в файловой системе было недостаточно места, вы могли бы использовать зарезервированное пространство в файловой системе. В файловых системах ext2 / 3/4 зарезервировано некоторое место для root. По умолчанию это 5%. Таким образом, если он был заполнен, а 2,3 ГБ занимает менее 5% места на диске, файловая система все равно будет заполнена.

В этой ситуации у вас есть два варианта. Продолжать освобождать пространство до того момента, когда у вас будет доступное свободное пространство или изменять объем пространства, зарезервированный файловой системой. Чтобы изменить количество зарезервированного пространства, используйте tune2fs -m 0 /dev/sda1замену 0 на процент зарезервированного пространства, которое вы хотите иметь, и / dev / sda1 на соответствующее устройство.

Смотрите принятый ответ на этот вопрос для более подробной информации.

3dinfluence
источник
0

Недолго. Скорее всего, файл просто все еще используется. Не будет освобождения дискового пространства, пока вы не завершите соответствующий процесс (ы).

poige
источник
0

Также проверьте ваш каталог .trash.

JakeRobinson
источник
где находится этот каталог .trash?
Ашиш Карпе
В Ubuntu 14.04 я вижу, что у меня ~/.local/share/Trashполно мусора, который я удалил в Nautilus.
Джонатан Хартли