Rain Wiki · Linux

logrotate

Что делает logrotate, как работает его конфигурация в /etc/logrotate.conf и /etc/logrotate.d, а также как безопасно протестировать правило.

Linux · Rain Wiki

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

Типичное правило

Правило указывает один или несколько файлов журналов и директивы, такие как daily или weekly (частота), rotate 7 (сколько старых файлов хранить), compress (сжатие старых файлов с помощью gzip), missingok (отсутствие ошибки, если файл отсутствует), notifempty (пропуск пустых журналов) и postrotate ... endscript (команда, выполняемая после ротации, например, для повторного открытия журнала).

copytruncate

Некоторые программы продолжают запись в один и тот же открытый файл. Параметр copytruncate копирует журнал, а затем усекает исходный файл вместо его перемещения, поэтому программа сохраняет свой дескриптор файла; несколько строк, записанных во время копирования, могут быть потеряны.

Тестирование

Команда 'logrotate -d /etc/logrotate.conf' запускается в режиме отладки и только выводит информацию о том, что произойдет. Флаг '-f' принудительно выполняет ротацию, даже если срок еще не подошел.

Как добавить и протестировать правило

  1. Создайте файл /etc/logrotate.d/myapp с путем к журналу и директивами, например weekly, rotate 4, compress, missingok, notifempty.
  2. Пробный запуск: sudo logrotate -d /etc/logrotate.d/myapp
  3. Если вывод выглядит корректно, принудительно выполните одну ротацию: sudo logrotate -f /etc/logrotate.d/myapp
  4. Проверьте результат: ls -l в каталоге журналов.

Осторожно

  • Неверный шаблон пути может привести к ротации или удалению журналов других программ.
  • Журналы, управляемые systemd journal, ограничиваются в journald.conf, а не с помощью logrotate.

Источники

Обновлено: 2026-10-08

Связанные статьи