Вопрос или проблема
Пожалуйста, посмотрите Редактирование #3, если вы ищете решение.
Я использую Xubuntu 16.04 LTS, у меня корневая раздел ~40 ГБ, который полностью заполнен по данным Монитора системы (как root). Он определенно заполнен, так как многие программы работают некорректно.
Тем не менее, по какой-то причине я не могу выяснить, что занимает место! Baobab (как root) сообщает лишь о 15.5 ГБ, используемом на моем корневом разделе!
ИЗМЕНЕНИЕ: Кроме того, вот /var – люди говорили, что это много. Baobab только сообщает о 1 ГБ для /var, и /var/log пуст. Я пробовал выполнять sudo rm -R /var/log
, но это не дало никаких результатов.
Итак, как мне узнать, что занимает мое дисковое пространство, и как предотвратить его заполнение моего корневого раздела? Это большая проблема, пожалуйста, помогите! Спасибо заранее 🙂
ИЗМЕНЕНИЕ 2: Как указано в разделе ответов, sudo lsof / | awk '{if(\$7 > 1048576) print \$7/1048576 \"MB\" \" \" \$9 }' | sort -n -u
возвращает 11222.7MB /var/log/kern.log 11222.9MB /var/log/syslog
, однако я не могу выяснить, как удалить эти файлы, и, кроме того, мне бы хотелось выяснить, как я могу навсегда предотвратить рост этих файлов до таких размеров. Этот ответ на другой вопрос предложил взглянуть на логи и выяснить, что их заполняет, поэтому, в идеале, я хотел бы какой-то способ читать содержимое этих загадочных файлов.
ИЗМЕНЕНИЕ 3: Я временно исправил эту проблему, смонтировав /var/log на отдельном разделе.
Тем не менее, все еще существует какая-то ошибка, которая это вызывает. Пожалуйста, если вы хотите, чтобы эта ошибка была исправлена, пожалуйста, обратите внимание на отчеты об ошибках: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1643719 и https://bugzilla.kernel.org/show_bug.cgi?id=188331. Спасибо 🙂
Существует два типа доступа к файлам, которые используют дисковое пространство, но не отображаются вашими инструментами: удаленные (но все еще открытые) файлы и файлы, в которые записывается информация.
У меня определены два этих алиаса, которые я нахожу очень полезными:
# из http://www.certpal.com/blogs/2010/12/find-open-files-in-linux-using-lsof/
alias bigopenfiles="sudo lsof / | awk '{if(\$7 > 1048576) print \$7/1048576 \"MB\" \" \" \$9 }' | sort -n -u"
alias deletedfiles="sudo lsof / | egrep 'PID|\(deleted\)'"
Ваш /var очень большой. Проверьте /var/log
Вы можете использовать эту команду, чтобы найти большие файлы :
sudo find /var -xdev -type f -size +500000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
конечно, вы можете настроить размер (500000k в этом примере)
После этого вы можете удалить или сжать их
Вероятно, вы не видите это с вашими инструментами, потому что файл открыт. Попробуйте это как root
> /var/log/syslog
Именно, включая >
. Это обрежет лог.
ПРИМЕЧАНИЕ:
- Это УДАЛИТ лог!
Как уже говорил @waltinator здесь, если вы обнаружите, что ваши удаленные файлы syslog занимают место даже после их удаления, и если вы не можете освободить его с помощью rm -R /var/log
или > /var/log/syslog
, убейте демона Syslog (в Elementary OS (Ubuntu 18.04) я выполнил killall rsyslogd
, чтобы освободить открытые файлы и освободил около 15 ГБ пространства)
Лучше смонтировать /var на отдельном разделе, если у вас есть такой.
У меня только 88 ГБ раздел для корня Ubuntu Studio… и за ночь он заполнился до 99 %… Я пытался удалить приложения, но с малым или безрезультатно, в конце концов я использовал bleachbit как root… и освободил около 10%… Но когда я запустил sudo Nautilus и нашел виновника, это оказался мой файл syslog, который вырос до 26 гигабайт… Я удалил его… ну, положил в корзину.. но место все равно использовалось, затем bleachbit стал моим героем и удалил его – как root! Он был в моей корневой корзине, теперь у меня 55% использованного пространства 🙂
Ответ или решение
Проблема переполнения корневого раздела — это задача, с которой сталкиваются многие пользователи Linux, и решение этой проблемы требует системного подхода. Давайте рассмотрим возможные причины и шаги для устранения данной ситуации.
1. Анализ проблемы
Согласно вашему описанию, на системе Xubuntu 16.04 LTS с корневым разделом объемом ~40 ГБ, вы заметили, что раздел полностью заполняется, в то время как инструменты, такие как Baobab, показывают меньшее использование дискового пространства. Это указывает на наличие скрытых факторов, таких как открытые, но удаленные файлы и файлы, находящиеся в процессе записи.
Возможные источники проблемы:
- Логи системы: Как вы уже выяснили, файлы
/var/log/syslog
и/var/log/kern.log
занимают значительное пространство. Это часто происходит при возникновении ошибок в системе, таких как проблемы с драйверами или оборудованием. - Открытые, но удаленные файлы: Если приложение или демоны продолжают писать в файл, который был удален, система по-прежнему будет удерживать диск занят. Это часто можно устранить командой
lsof
.
2. Решение проблемы с логами
Очистка журналов
Если ваши журналы (например, syslog) занимают слишком много места, вы можете очистить их, используя:
sudo truncate -s 0 /var/log/syslog
Это приведет к снижению использования дискового пространства за счет обнуления файла.
Остановка демонов
Если после очистки журнала проблема не решается, попробуйте остановить службу, которая пишет в эти журналы:
sudo systemctl stop rsyslog
Затем выполните команду очистки и снова запустите службу:
sudo systemctl start rsyslog
3. Анализ и удаление больших файлов
Вы можете найти большие файлы в каталоге /var
с помощью следующей команды:
sudo find /var -xdev -type f -size +500000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
Это поможет локализовать все файлы, которые превышают Например, 500 МБ, и принять решение о необходимости их удаления или архивации.
4. Стратегия предотвращения
После устранения текущей проблемы рекомендуется внедрить следующие меры для предотвращения повторного возникновения ситуации:
- Монтаж
/var/log
на отдельный раздел: Это поможет преодолеть переполнение корневого раздела, связанное с увеличением логов. - Ротация журналов: Проверьте настройки
logrotate
, которые могут помочь автоматически управлять размерами логов и их периодическим архивированием.
5. Заключение
При работе с Linux важно учитывать, что системное администрирование требует регулярного мониторинга и анализа состояния дискового пространства. Используйте команды, которые позволяют вам увидеть скрытые данные, и следите за тем, что именно использует ваше дисковое пространство. Это поможет предотвратить проблемы в будущем и обеспечит стабильную работу вашей системы.
SEO Оптимизация
Этот ответ на вопрос о переполнении корневого раздела может привлечь внимание к проблемам использования дискового пространства в Linux. Включение ключевых слов, таких как "чистка логов", "проверка дискового пространства" и "управление файлами", может помочь в достижении большей видимости в поисковых системах.