Что делает logrotate, как работает его конфигурация в /etc/logrotate.conf и /etc/logrotate.d, а также как безопасно протестировать правило.
logrotate — это утилита Linux, которая выполняет ротацию, сжатие и удаление файлов журналов, чтобы они не переполняли диск. Обычно она запускается один раз в день с помощью таймера systemd или задания cron и считывает файл /etc/logrotate.conf, а также правила для отдельных пакетов в /etc/logrotate.d/.
Правило указывает один или несколько файлов журналов и директивы, такие как daily или weekly (частота), rotate 7 (сколько старых файлов хранить), compress (сжатие старых файлов с помощью gzip), missingok (отсутствие ошибки, если файл отсутствует), notifempty (пропуск пустых журналов) и postrotate ... endscript (команда, выполняемая после ротации, например, для повторного открытия журнала).
Некоторые программы продолжают запись в один и тот же открытый файл. Параметр copytruncate копирует журнал, а затем усекает исходный файл вместо его перемещения, поэтому программа сохраняет свой дескриптор файла; несколько строк, записанных во время копирования, могут быть потеряны.
Команда 'logrotate -d /etc/logrotate.conf' запускается в режиме отладки и только выводит информацию о том, что произойдет. Флаг '-f' принудительно выполняет ротацию, даже если срок еще не подошел.
/etc/logrotate.d/myapp с путем к журналу и директивами, например weekly, rotate 4, compress, missingok, notifempty.sudo logrotate -d /etc/logrotate.d/myappsudo logrotate -f /etc/logrotate.d/myappОбновлено: 2026-10-08
Как читать логи с помощью journalctl, проверять объем занимаемого журналом места и безопасно очищать его с помощью опций --vacuum.
Как найти, что заполняет диск в Linux с помощью du и интерактивной утилиты ncdu, используя параметры для ограничения поиска одной файловой системой.
Как cron выполняет запланированные задачи, пять полей времени crontab, где хранятся системные файлы cron и как они соотносятся с таймерами systemd.