Имея дело со старой коробкой CentOS 5.6, без установки lvm, моя корневая файловая система / переполнена, я очистил много старых файлов журналов и файлов приложений, которые мне не нужны, которые были больше чем 2 -5 ГБ, однако моя система по-прежнему сообщает, что диск заполнен.
[root@tornms1 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 130G 124G 0 100% /
/dev/sdb1 264G 188M 250G 1% /data
/dev/sda1 99M 24M 71M 26% /boot
tmpfs 2.0G 0 2.0G 0% /dev/shm
[root@tornms1 ~]# mount
/dev/sda3 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sdb1 on /data type ext3 (rw)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
Любая идея о том, что я должен попытаться сделать дальше? к сожалению, перезагрузка коробки не вариант в настоящее время.
/.Trash/
пуст? Ты сделалsudo rm -Rf ~/.Trash/*
?Ответы:
Здесь могут происходить две вещи.
Во-первых , ваша файловая система зарезервировала некоторое пространство, в которое
root
может выполнять запись только так, чтобы критический системный процесс не падал, когда обычным пользователям не хватает места на диске. Вот почему вы видите 124G 130G, но ноль доступно. Возможно, файлы, которые вы удалили, снизили уровень использования до этого уровня, но не ниже порогового значения для обычных пользователей.Если это ваша ситуация, и вы в отчаянии, вы можете изменить количество места, отведенного для
root
. Чтобы уменьшить его до 1% (по умолчанию 5%), ваша команда будетВо-вторых , операционная система не освобождает дисковое пространство для удаленных файлов, которые все еще открыты. Если вы удалили (скажем) один из файлов журнала Apache, вам необходимо перезапустить Apache, чтобы освободить место.
источник
Если вы удалите файл, который используется процессом, вы больше не сможете просматривать файл с помощью
ls
. Процесс все еще записывает в этот файл, пока вы не остановите процесс.Чтобы просмотреть эти удаленные файлы, просто запустите
lsof|grep delete
источник
2 других способа получить диск это полная проблема:
1) скрытый под точкой монтирования: linux покажет полный диск с файлами, «скрытыми» под точкой монтирования. Если у вас есть данные, записанные на диск и монтирующие поверх него другую файловую систему, linux правильно отмечает использование диска, даже если вы не видите файлы под точкой монтирования. Если у вас есть монтирования nfs, попробуйте их монтировать и посмотреть, не было ли что-нибудь случайно записано в этих каталогах перед монтированием.
2) поврежденные файлы: иногда я вижу это при передаче файлов через Linux в SMB. Один файл не может закрыть дескриптор файла, и вы получите 4ГБ файл мусора.
Исправить это может быть более утомительно, потому что вам нужно найти подкаталог, в котором находится файл, но это легко исправить, поскольку сам файл легко удаляется. Я использую
du
команду и делаю список корневых подкаталогов, чтобы узнать, где используется файловое пространство.Количество каталогов верхнего уровня обычно ограничено, поэтому я установил удобочитаемый флаг,
-h
чтобы увидеть, какой подкаталог является пробелом.Затем вы перейдете к проблемному дочернему элементу и повторите процедуру для всех элементов в нем. Чтобы упростить обнаружение крупных предметов, мы немного изменим du и свяжем его с сортировкой.
который производит наименьший к наибольшему выводу по байтовому размеру для всех файлов и каталогов
Как только вы обнаружите слишком большой файл, вы можете просто удалить его.
источник
Вы можете узнать, какие файлы открыты с помощью lsof. Он может выводить много информации, поэтому в приведенном ниже примере я ограничился строками, заканчивающимися на log:
источник
Если некоторые файлы удалены, но все еще используются каким-либо процессом, его пространство не будет освобождено. В этом случае либо перезапустите процесс, который использует файл, либо аннулируйте файл. Всегда полезно обнулять такие файлы, а не удалять их. Чтобы найти удаленные файлы, но они все еще используются каким-либо процессом
он даст идентификатор процесса и дескриптор файла. Обнулить удаленный файл дескриптором файла
источник
Введите команду
Который покажет список файлов, в которых хранится память с удаленной цитатой.
Обратите внимание на pid (идентификатор процесса) файла
Убить процесс
Память будет освобождена процессом
Проверьте это командой
источник
В дополнение к тому, что было объяснено, проблема может заключаться в том, что существует другая точка монтирования удаленного файлового каталога на другом подключенном дисковом устройстве на том же сервере. Проверьте текущие монтирования и записи fstab.
источник
Актуальная проблема наблюдается в дикой природе:
Убедитесь, что вы удаляете фактические файлы, а не символические ссылки на файлы. Это может быть особенно важно для файлов журналов.
источник