Найти в Дзене
Герман Геншин

Не хватает места на диске в Linux? Проверьте свои журналы!

Оглавление

Несмотря на то, что системы Linux имеют репутацию экономных, вы можете обнаружить, что вам внезапно стало не хватать места на диске. Почему это произошло? Самый большой ключ к разгадке и, возможно, самый большой виновник можно найти в системных журналах Linux.

Почему журналы занимают так много места на диске?

Журналы - это важная часть управления Вашей системой Linux. Вы можете видеть, что происходит с вашей машиной, а также устранять возникающие проблемы. Демоны ведения журналов в Linux похожи на Event Viewer в Windows. Журналы обычно не занимают много места. Это связано с тем, что большинство дистрибутивов автоматически управляют тем, сколько места они занимают на диске.

Журналы Linux исторически были обычными текстовыми файлами, но с переходом многих дистрибутивов на systemd они стали двоичными файлами, которые управляются journald, службой systemd. В качестве альтернативы ваш дистрибутив использует rsyslog или syslog-ng.

Поскольку старые журналы неактуальны, а большие архивы занимают много места, ваша система обычно "вращает" их - архивирует, сжимает и в конце концов удаляет, чтобы сэкономить место на диске для нужных вам материалов.

Хотя вы не думаете, что журналы могут занимать много места, сбойный процесс может заполнять журналы быстрее, чем система успевает их ротировать.

Если вы проверяете дисковое пространство и обнаруживаете, что его внезапно стало мало, а вы знаете, что в последнее время не загружали никаких больших файлов, причина может заключаться в проблемах с системными журналами Linux. Вам нужно выяснить, что заполняет системные журналы, и исправить это.

Вы можете проверить, сколько дискового пространства вы используете с помощью команды команда d u-h:

Вы увидите список каждого подкаталога с указанием общего объема занимаемого им места:

-2

Поиск журналов

Если вы используете современный дистрибутив Linux с systemd, то для просмотра журналов вы будете использовать программу journalctl; journald обычно хранит журналы в каталогах /var/log/journal или /run/log/journal, в зависимости от дистрибутива.

-3

Чтобы просмотреть журналы, введите команду journald в приглашении командной строки. Есть и другие полезные опции командной строки. Чтобы просмотреть загрузочные сообщения, используйте опци ю-b:

С помощью опци и-f можно просматривать сообщения журнала в реальном времени.

Если в вашем дистрибутиве не используется systemd, вы найдете журналы в каталоге /var/log. Даже при использовании systemd некоторые программы все равно хранят свои журналы в этом каталоге. Это обычные текстовые файлы, которые можно просмотреть с помощью утилиты типа pager, например less.

Например, чтобы прочитать системный журнал:

Вы увидите полное содержимое файла журнала, который может содержать тысячи строк:

-4

Вы также можете наблюдать за ним в реальном времени с помощью опци и-f команды tail:

Как Linux вращает файлы журнала

-5

В каталоге /var/log вы можете заметить файлы с именами, заканчивающимися на "log.N.gz", где N - число. Это результат ротации системой старых журналов. В большинстве дистрибутивов есть утилита, которая делает это автоматически, называется "logrotate". logrotate обычно настраивается на запуск в качестве задание cron или таймера systemd.

По умолчанию большинство дистрибутивов запускают logrotate ежедневно. logrotate сжимает старые журналы с помощью gzip, о чем свидетельствуют расширения файлов ".gz". Для этого он использует порог, например возраст или размер файла, а также другой порог для окончательного удаления старых файлов журнала.

Параметры logrotate, установленные по умолчанию, достаточны для большинства пользователей настольных компьютеров. Вы можете изменить поведение logrotate, отредактировав файл /etc/logrotate.conf от имени суперпользователя, а также отредактировав файлы таймера cron или systemd вашей системы, но эти операции действительно актуальны только для администраторов серверов.

Вам лучше исправить то, что заполняет ваши журналы, чем настраивать конфигурационные файлы для экономии дискового пространства. Если вам обязательно нужно изменить конфигурацию, вы можете прочитать страницу руководства logrotate.

Какие журналы безопасно удалять?

-6

Если все остальное не помогает, и вы отчаянно пытаетесь освободить место на диске, вы можете вручную удалить архивные файлы журналов, заканчивающиеся на ".gz", до того, как это сделает logrotate. Вы можете использовать команду rm, но вам придется запустить ее от имени суперпользователя, поскольку эти файлы принадлежат системе:

Эта команда удалит все файлы, содержащие "syslog." и заканчивающиеся "gz".

Обычно не следует удалять файлы в системных каталогах, не разобравшись в последствиях, но архивные журналы не вызовут никаких проблем, если они пропадут. Однако если у вас возникнет проблема, вам может понадобиться обратиться к старым журналам.

Как исправить то, что заполняет ваши журналы

Лучший способ выяснить, что именно заполняет ваши журналы, - проследить за ними с помощью опций journalctl или tai l-f. Лучше всего повторять сообщения об ошибках.

Чтобы сэкономить место на диске, вам придется удалить нарушающий процесс. Если вы не знаете, в чем причина ошибки, вы можете поискать информацию в Интернете или попросить помощи на каналах поддержки вашего дистрибутива. Когда вы окончательно устраните проблему, можете смело удалять старые журналы. Теперь у вас должно быть гораздо больше места на диске.

Если тебе понравилась статья - подпишись на канал, чтобы не пропустить ещё много полезных статей!

Также ты можешь читать меня здесь: