Не вистачає місця на диску в Linux? Перевірте свої журнали!

| | 0 Comments| 8:45 PM
Categories:

Ключові висновки

  • Системні журнали Linux можуть займати значну кількість дискового простору.
  • Ваша система зазвичай стискає старі файли журналу, щоб заощадити місце на диску.
  • Ви можете використовувати команду journalctl або tail -f для перегляду журналів і виявлення проблемних процесів.

Хоча системи Linux мають репутацію струнких, ви можете виявити, що у вас раптово закінчується місце на диску. Чому так сталося? Найбільшу підказку та, можливо, найбільшого винуватця можна знайти у ваших системних журналах Linux.

Чому журнали займають так багато дискового простору?

Журнали є важливою частиною керування системою Linux. Ви можете бачити, що відбувається з вашою машиною, а також вирішувати проблеми, які виникають. Демони журналювання Linux подібні до засобу перегляду подій у Windows. Журнали зазвичай не займають багато місця. Це пояснюється тим, що більшість дистрибутивів автоматично керуватимуть тим, скільки місця вони займають на вашому диску.

Історично журнали Linux були звичайними текстовими файлами, але з багатьма основними дистрибутивами, які переходять на systemd, це двійкові файли, якими керує journald, служба systemd. Крім того, ваш дистрибутив використовуватиме rsyslog або syslog-ng.

Оскільки старі журнали не є актуальними, а великі архіви можуть займати місце, ваша система зазвичай «обертає» їх — архівує, стискає та зрештою видаляє — щоб заощадити місце на диску для того, що вам дійсно потрібно.

  Найкращі альтернативи додаткам Mac для Linux

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

Якщо ви перевіряєте свій дисковий простір і раптово стає мало, і ви знаєте, що останнім часом не завантажували жодного великого файлу, причиною може бути проблема з системними журналами Linux. Вам доведеться з’ясувати, що заповнює ваші системні журнали, і виправити це.

Ви можете перевірити, скільки дискового простору ви використовуєте, за допомогою команди du -h:

 du -h /var/log 

Ви побачите список кожного підкаталогу разом із загальним обсягом місця, який він займає:

Пошук ваших журналів

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

Щоб переглянути журнали, введіть команду journald у командному рядку оболонки. Є й інші корисні параметри командного рядка. Щоб переглянути повідомлення про завантаження, використовуйте параметр -b:

 journalctl -b 

Ви можете переглядати повідомлення системного журналу в реальному часі за допомогою опції -f.

Якщо ваш дистрибутив не використовує systemd, ви знайдете журнали в каталозі /var/log. Навіть із systemd деякі програми все ще зберігають свої журнали в цьому каталозі. Це звичайні текстові файли, які можна перевірити за допомогою утиліти, наприклад пейджера, наприклад, less.

  Як об’єднати PDF-файли з PDFSam в Linux

Наприклад, щоб прочитати системний журнал:

 less /var/log/syslog

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

Ви також можете контролювати це в режимі реального часу за допомогою параметра -f команди tail:

 tail -f /var/log/syslog

Як Linux обертає файли журналів

У каталозі /var/log ви можете помітити файли з іменами, що закінчуються на «log.N.gz», де N — це число. Це результат того, що система обертає старі журнали. У більшості дистрибутивів є утиліта, яка зробить це автоматично, називається «logrotate». logrotate зазвичай налаштований для запуску як завдання cron або таймер systemd.

За замовчуванням більшість дистрибутивів запускатимуть logrotate щодня. logrotate стискає старі журнали за допомогою gzip, про що свідчать розширення файлів «.gz». Для цього використовується порогове значення, як-от вік або розмір файлу, а також інше порогове значення, щоб остаточно видалити старі файли журналу.

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

Вам краще виправити те, що заповнює ваші журнали, ніж налаштовувати файли конфігурації, щоб заощадити місце на диску. Якщо вам абсолютно необхідно змінити конфігурацію, ви можете прочитати сторінка посібника logrotate.

  Як встановити Adwaita Tweaks для Gnome Shell на Linux

Які журнали безпечно видаляти?

Якщо нічого не допомагає і ви відчайдушно прагнете звільнити місце на диску, ви можете вручну видалити архівні файли журналу, які закінчуються на “.gz”, перш ніж logrotate це зробить. Ви можете використовувати rm, але вам потрібно буде запустити його як суперкористувач, оскільки ці файли належать системі:

 sudo rm /var/syslog/syslog.*gz 

Ця команда видалить усі файли, що містять «syslog». і закінчується на «gz».

Завжди будьте дуже обережні, запускаючи команди через sudo, особливо такі деструктивні команди, як rm!

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

Як виправити те, що заповнює ваші журнали

Найкращий спосіб дізнатися, що заповнює ваші журнали, це стежити за журналами за допомогою параметрів journalctl або tail -f. Найкраще повторювати повідомлення про помилки.

Вам доведеться впоратися з проблемним процесом, щоб заощадити місце на диску. Якщо ви не знаєте, що спричиняє помилку, ви можете пошукати в Інтернеті або попросити допомоги на каналах підтримки вашого дистрибутива. Коли ви нарешті це виправите, ви можете безпечно видалити старі журнали. Тепер у вас має бути набагато більше місця на диску.