Журнал systemd logrotate не трогает: свои файлы journald вращает и чистит сам.
Записи журнала лежат в /var/log/journal/. Пишутся они в активный файл system.journal. Когда тот дорастает до предела, journald закрывает его — файл становится архивом с именем вида system@…journal — и начинает новый активный. Сколько занимают все файлы вместе, показывает sudo journalctl --disk-usage; на учебной машине — 16.0M.
Предел задают в настройках journald: SystemMaxFileSize — размер одного файла, SystemMaxUse — всех файлов журнала. Новые значения действуют после перезапуска journald.
Освободить место сразу помогает journalctl: --vacuum-size=200M удаляет самые старые архивы, пока они не займут меньше 200M, --vacuum-time=2weeks — архивы старше двух недель. --rotate превращает активный файл в архив.
У journald бывают и отдельные пространства журнала — экземпляры со своими файлами и настройками, /etc/systemd/journald@ИМЯ.conf. Команды выбирают пространство ключом --namespace=ИМЯ. В упражнении и в лабе модуля ты работаешь с таким пространством, и основной журнал машины остаётся нетронутым.
Журнал systemd занял слишком много места, и рост нужно остановить на будущее. Что сделаешь?
-
vacuum удаляет архивы, которые уже накопились, а рост между запусками не ограничивает. Предел на будущее задаёт
SystemMaxUse. -
rmмимо journald освобождает место один раз и может удалить файл, в который journald пишет. Архивы удаляетjournalctl --vacuum-size, а рост ограничиваетSystemMaxUse.
SystemMaxUse journald соблюдает сам: дойдя до предела, он удаляет старые архивы. --vacuum-size годится, чтобы освободить место сразу.
Главное в шаге
- journald пишет в активный файл и сам превращает его в архив, когда тот заполнен.
-
SystemMaxUseограничивает журнал на будущее,--vacuum-sizeудаляет накопленные архивы. -
--namespace=ИМЯвыбирает отдельное пространство журнала со своими файлами.