logrotate: ограничить размер и срок хранения логов

Категория: Bash · Язык: Bash · Обновлено:

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

Рабочий пример

Текст
/var/log/myapp/app.log {
    daily
    size 50M
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 0640 app adm
}

rotate 7 хранит семь архивов, compress включает gzip, create задаёт права и владельца нового файла. Если приложение держит старый file descriptor, после ротации ему может понадобиться сигнал reopen.

Частый вопрос

Как проверить конфигурацию без ротации?

Используйте sudo logrotate --debug /etc/logrotate.d/myapp. --force запускает реальную ротацию и меняет файлы.