Глобально — /etc/logrotate.conf, по сервисам — /etc/logrotate.d/<service>:
/var/log/myapp/*.log {
daily # как часто (daily/weekly/monthly) — или size 100M
rotate 14 # хранить 14 копий
compress # сжимать старые (.gz)
delaycompress # не сжимать самый свежий ротированный (для дозаписи)
missingok # ок, если лога нет
notifempty # не ротировать пустые
dateext # суффикс датой (file-20260101) вместо .1
create 0640 myapp myapp # создать новый лог с этими правами/владельцем
su myapp myapp # под кем работать (если каталог не root)
sharedscripts # postrotate один раз на все файлы шаблона
postrotate
systemctl reload myapp >/dev/null 2>&1 || true
endscript
}
Директивы
| Директива |
Смысл |
daily/weekly/monthly |
период |
size 100M |
ротация по размеру (вместо/вместе с периодом) |
rotate N |
сколько копий хранить |
compress/delaycompress |
сжимать / отложить сжатие на цикл |
copytruncate |
копировать и обнулить (если служба не умеет переоткрыть лог) |
postrotate…endscript |
команда после ротации (reload службы) |
maxage N |
удалять старше N дней |
postrotate (reload/переоткрытие) или copytruncate нужны, чтобы служба начала
писать в новый файл.
Ничего не найдено. Попробуй запрос короче.