df в linux не показывает правильное свободное место после удаления файла
У меня есть файловые серверы, которые используются для хранения файлов. Файлы могут находиться там в течение недели или года. К сожалению, когда я удаляю файлы с сервера, df команда не отражает освободившееся пространство. В итоге сервер заполняется ( df показывает 99%), и мой сценарий больше не отправляет туда файлы, за исключением того, что там может быть несколько десятков ГБ свободного места.
Я получил noatime флаг на смонтированных разделах, если это что-то меняет.
Удаление имени файла фактически не удаляет файл. Какой-то другой процесс удерживает файл открытым, не позволяя удалить его; перезапустите или убейте этот процесс, чтобы освободить файл.
чтобы выяснить, какой процесс использует удаленный (несвязанный) файл.
как упоминает Игнасио, удаление файла не освободит место до тех пор, пока вы не удалите процессы, которые имеют открытые дескрипторы для этого файла.
Тем не менее, вы можете восстановить пространство, не убивая процессы. Все, что вам нужно сделать, это удалить дескрипторы файлов.
Сначала выполните lsof | grep удален, чтобы идентифицировать процесс, содержащий файл
«1» будет дескриптором файла. Теперь введите «> FD», чтобы освободить это пространство
Возможно, вам придется повторить операцию, если есть другие процессы, содержащие файл.
Одна возможность состоит в том, что удаленные файлы имеют больше ссылок в файловой системе. Если вы создали жесткие ссылки, несколько имен файлов будут указывать на одни и те же данные, и данные (фактическое содержимое) не будут помечены как свободные / пригодные для использования, пока все ссылки на них не будут удалены. Прежде чем удалять файлы, либо укажите их (запись с именем Links), либо выполните для них команду ls -l (это должен быть второй столбец).
Если выясняется, что на файлы есть ссылки в другом месте, я думаю, вам придется ls -i файл (ы), чтобы найти номер inode, а затем выполнить поиск с помощью -inum , чтобы найти другие ссылки на этот файл (возможно, вы также захотите использовать -mount, чтобы остаться в той же файловой системе).
Файл все еще заблокирован процессом, открывающим его. Чтобы освободить место, выполните следующие действия:
Запустите sudo lsof | grep deleted и посмотрите, какой процесс содержит файл. Пример результата:
Убить процесс с помощью sudo kill -9
Запустите, df чтобы проверить, освободилось ли место. Если он все еще заполнен, возможно, вам нужно подождать несколько секунд и проверить еще раз.
Если раздел настроен на резервирование определенной части дискового пространства только для использования root, df не будет включать это пространство как доступное.
Даже после освобождения места путем удаления файлов / каталогов, пользователь без полномочий root не сможет писать в определенный раздел.
Вы можете легко проверить, так ли это, попытавшись создать файл на устройстве как пользователь root и не пользователь root.
Кроме того, вы можете проверить конфигурацию файловой системы, запустив
и рассчитать фактический% самостоятельно.
Чтобы изменить% диска, зарезервированный для использования только в корне, выполните
Другие ответы верны: если вы удаляете файл, а пространство не освобождается, это обычно либо потому, что файл все еще остается открытым, либо на него есть другие жесткие ссылки.
Чтобы помочь в устранении неполадок, используйте инструмент, который сообщит вам, где место на диске расходуется: вы можете использовать, du чтобы получить представление о том, где место на диске . Еще лучше использовать графический инструмент, такой как xdiskusage (их много), чтобы выследить преступника. xdiskusage и друзья позволяют вам углубиться в самых больших космических свиней, чтобы найти, куда идет космос.
Таким образом, вы быстро найдете файлы, которые все еще занимают место из-за второй жесткой ссылки. Он также покажет пространство, занимаемое удаленными, но открытыми файлами (я считаю, что (разрешение запрещено), поскольку он не может прочитать имя файла).
Так как я знаю, что многие из вас делают это для redhat /var и gzip-файлов, ожидая сокращения FS, но вместо этого она увеличивается, просто убедитесь, что вы перезапускаете syslog службы. а также
покажу вам это в любом случае.
Еще один вариант: диск может быть заполнен из-за процесса, который постоянно создает данные: журналы, ядра и тому подобное. Возможно, что пространство на самом деле освобождается, но сразу же заполняется. Я действительно видел такой случай. df в этом случае просто не дает картину дыры. Используйте, du чтобы узнать больше.
Я использую EXT2, FSCK помог мне в этой ситуации. Попробуйте shudown -F сейчас, после некоторых перезапусков и fscks, я вижу половину используемого пространства.
Чтобы проверить, какие удаленные файлы заняли память, введите команду
Он покажет удаленные файлы, которые содержат память.
Затем убейте процесс с помощью pid или name
проверьте сейчас у вас будет такая же память
Если нет, введите команду ниже, чтобы увидеть, какой файл занимает память
укажите любой размер, который покажет, какие файлы занимают размер выше порогового, и удалите файл, в котором останется память
открыть терминал, попробуйте эту команду df -Th, затем используйте эту команду sudo du -h —max-deep = 1 / в этой команде вы найдете подробности использования диска, затем откроете, как пользователь root удалит файл (root-local-share-trash) и удали свой файл
Источник
не освобождается место после удаления файла
xubuntu 12.04.5
(Linux version 3.13.0-34-generic)
удалил видеофайл размером где-то в 1,5 гига из каталога с фильмами (как называется файл, уже не помню. да кажется и не один он «завис» в удаленных)
удалял не через проводник, а через delug — он обычно удаляет с концами
файл исчез, но место на диске не освободилось
как решить без перезагрузки?
(ребут решит однозначно, ибо аналогичная беда периодически возникала — так и решалась)
Кто-то не отпустил файл. Это призрак.
? Ну и делюгу перезапусти.
$ echo 3 > /proc/sys/vm/drop_caches && sync
bash: /proc/sys/vm/drop_caches: Отказано в доступе[/code]
прав не хватает. от рута надо, очевидно же.
Я же специально написал # в начале сообщения.
echo 3 > /proc/sys/vm/drop_caches && sync
но чуда не произошло, нет
столько же места как и было
lsof — что?
я даже имени файла не помню который удалялся, только папку его
А мамку помнишь?
один идиот запостил про кэши, остальные бросились повторять. как забавно
Естественно у рута пусто (ты же не сидишь под рутом всегда, да?)
Делюга работала от рута?
$ du -sh .local/share/Trash/
104K .local/share/Trash/
[/code]
вообще, я писал же — deluge удаляет не в корзину, а начисто
я писал же — deluge удаляет не в корзину, а начисто
я хз что за делюг такой, я когда хочу удалить безвозвратно юзаю rm по старинке! все эти треши — не unix-way.
Сам такой. Чем можем, тем и помогаем.
ну пока что воз и ныне там
принимаются варианты
Раз после перезагрузки свободное место появляется, то либо есть хардлинк в директорию, очищаемую после перезагрузки, скажем /tmp. Либо кто-то не отпускает файл, например deluge.
или по размеру судить о файле
пусто, никаких результатов т.е.
но я еще надеюсь
больше вариантов нет?
Купи новый жёсткий диск.
Часто бывает такая же фигня. У даляю фильмы с usb-hdd (ntfs), файлы пропадают без следа, а место не освобождается. Помогает только проверка диска в винде, после которой появляются потерянные файлы, соответствующего размера, которые и надо удалить, чтобы освободить место. Эти файлы оказываются в отдельной папке в корне диска, не помню как называется — туда chkdsk сваливает найденные потерянные файлы или их фрагменты. Из-за чего такое происходит не знаю, предполагаю, что сказывается закрытость стандарта NTFS, но тогда это уже совсем другая печальная история.
Это же линукс, тут всегда одно из двух: или закрытость сказывается или криворукая любительская открытость.
А ты «корзину» проверял? может он там?)
Ответ на: комментарий от MinasFilm 31.08.2014
Источник
[РЕШЕНО] удалил файлы — места нет
# 9 лет, 8 месяцев назад (отредактировано 9 лет, 8 месяцев назад)
Какая-то странная вещь. Имею раздел sda3 размером 12 гб смонтированный
в /home. В нем следующие каталоги: .Trash, lost+found, sda8 и wl.
(Пусть sda8 никого не смущает, он почти пустой и примонтирован в него
раздел на потом — на запас).
Первые три в сумме занимают чуть более 100 мб, а последний (wl — каталог юзера) согласно выводу команды du -sk /home/* занимает 4377460 кб.
Т.е. должно быть свободного места около 7 гигов с копейками.
Однако вывод df такой:
/dev/sda3—–12G—– 12G—–0—–100% /home
Я подозреваю, что недавно удаленные мною файлы занимают эти 7 гигов и забили остаток места.
Можно ли их либо вытащить на свет божий, либо как-то освободить это место другим способом?
Извините, что не очень методически связно изложил.
vadik
Посмотрите содержимое /home/имя_пользователя/.local/share/Trash/, а также .cache и .thumbnails.
vadik
Посмотрите содержимое /home/имя_пользователя/.local/share/Trash/, а также .cache и .thumbnails.
sleepycat
ну давай тогда ls -la корня, и запости выводы Du или чем ты там мерил размеры. Как говаривал Ш. Холмс “очень интересное дело”.
Корня не дам и смысла нет, это видно по ls -la /home :
ls -la /home 1:06 🙁
итого 36
drwx—— 6 wl users 4096 янв. 13 20:00 ./
drwxr-xr-x 21 root root 4096 дек. 30 14:46 ../
drwx—— 2 root root 16384 апр. 24 2011 lost+found/
drwxr-xr-x 7 wl users 4096 янв. 15 01:03 sda8/
drwx—— 4 root root 4096 дек. 30 19:31 .Trash-0/
drwxr-xr-x 38 wl 1000 4096 янв. 15 01:08 wl/
ну и до кучи:
sudo du -sk /home/* 1:11 🙁
16 /home/lost+found
448248 /home/sda8 (Здесь изменился размер, т.к. я только что сюда положил около 300 мб. Напомню, это примонтированный раздел со своим свободным местом, которое не имеет отношения к sda3)
4359560 /home/wl
А вот что говорит pcmanfm о свойствах каталога wl:
Общий размер файлов 4,4 гб
Размер на диске 35,7 гб
Это уже ни в какие ворота не лезет, весь раздел sda3 12 гигов!
И второй вариант: если все же туда смонтирован отдельный диск, попробуйте отмонтировать и убедиться, что каталог пустой.
kurych
И второй вариант: если все же туда смонтирован отдельный диск, попробуйте отмонтировать и убедиться, что каталог пустой.
© 2006-2021, Русскоязычное сообщество Arch Linux.
Название и логотип Arch Linux ™ являются признанными торговыми марками.
Linux ® — зарегистрированная торговая марка Linus Torvalds и LMI.
Источник