У меня проблема. Мне все время не хватает места на диске. Я точно не знаю, какие файлы занимают все пространство. Кажется, там куча маленьких файлов, поэтому их сложно найти с помощью du
команда. Каждый раз, когда я нахожу что-то, от чего нужно избавиться, чтобы получить немного свободного места (почта, журналы, старые архивы и rpms), диск через некоторое время снова заполняется. Похищено пространство из системного раздела (/). Результаты df
команда:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 4061540 3848404 3492 100% /
/dev/sda3 4061572 2441348 1410576 64% /home
tmpfs 517636 0 517636 0% /dev/shm
/dev/sdb1 10317828 1894904 7898808 20% /var/lib/mysql
Что бы вы посоветовали в этой ситуации?
Было бы здорово, если бы вы также могли перечислить список случаев, когда вы сталкиваетесь с чрезмерным или неожиданным потреблением места. Это может помочь решить проблему
ОС: CentOS 5.
Вот мой стандартный режим «найди то, что ест пространство»:
du -hx --max-depth=1 /
- ищите, что пожирает пространство. Изучите самый большой подкаталог (скажем du -hx --max-depth=1 /var
), пока не найдете космических свиней. Журналы (в /var/log
) являются частыми виновниками (с которыми вам следует бороться с помощью logrotate), как и мусор, который yum любит хранить (переупакованные RPM). Если вы можете выявить повторных нарушителей, разработайте способ автоматизации любых работ по техническому обслуживанию, которые вы выполняете, чтобы постоянно убирать.lsof -n |grep deleted
- ищите большие файлы, которые были удалены. Определите, какой процесс держит их открытыми, и завершите его или скажите, чтобы он переработал его дескрипторы (если это файлы журнала, kill -HUP <pid>
часто будет делать свое дело), если можете./dev/sdb1
в VG и выделить оттуда.Одно дополнение к ответу womble - если вы обнаружите, что получаете много больших файлов журнала, подумайте об использовании logrotate (который установлен по умолчанию в большинстве дистрибутивов), чтобы уменьшить их размер. Если есть один конкретный журнал, который занимает большую часть места, вы также должны проверить его на наличие повторяющихся ошибок и убедиться, что для службы, которая создает журнал, не установлен слишком высокий уровень детализации.
Если это еще не сделано, переместите точку монтирования / var в другой раздел. Файловая система / var существует для предотвращения заполнения корневой файловой системы.
То же самое для / tmp, если это еще не отдельный раздел.
У вас может быть процесс, который удаляет файлы, но оставляет их открытыми. Пространство не будет освобождено до закрытия / выхода из процесса. Вы можете использовать команду lsof, чтобы узнать, какие процессы какие файлы открывают. Команда lsof может отсутствовать в вашей стандартной установке Centos, возможно, вам придется добавить пакет, чтобы получить ее.
sudo du --all --one-file-system / | xdu -n
Пример: размонтировать / home, записать туда файл размером 10 ГБ, снова смонтировать / home. Пространство будет израсходовано, и df
ничего не показывает: точка монтирования скрывает файлы внутри этой папки.
Проверьте это: это может произойти, если когда-либо возникали ошибки монтирования, и некоторые файлы были помещены туда.