Назад |
Перейти на главную страницу
Директива logrotate 'rotate' и переход с ежедневного на еженедельный
У меня есть сервер, собирающий сообщения системного журнала из сети. Logrotate в настоящее время настроен и работает, и его конфигурация выглядит так:
/logs/*/log {
daily
rotate 60
}
Вместо ежедневной ротации я бы предпочел еженедельно. Очевидно, я веду журналы за 60 дней, поэтому я, вероятно, изменил бы rotate 60
к rotate 8
, который будет хранить журналы за 8 недель.
Вот мои вопросы:
- Если я перейду с ежедневного на еженедельный и сохраню 8 журналов, при запуске logrotate удалит ли он 52 самых старых ежедневных журнала или достаточно ли умен, чтобы заметить отметки даты в файлах и понять, что 8 недель это 2 месяца назад?
- Если я запустил logrotate вручную с
-f
флаг для принудительного вращения, и я сделал это 8 раз, смогу ли я полностью стереть все журналы? - Если я пойду в
logrotate.status
файл и вручную удалите один конкретный журнал, что произойдет с этим конкретным журналом при следующем запуске logrotate?
- Если вы измените количество журналов, то при следующем запуске logrotate гарантирует, что будет сохранено не более такого количества журналов. Число не обязательно связано с количеством дней (вы можете запускать logrotate ежечасно, если настроите его правильно).
- Да, если у вас нет
notifempty
настройку (которую я рекомендую). - То же, как если бы вы повторно добавили этот журнал в конфигурацию после его удаления. Он будет вращать журнал, поскольку он не знает, когда это могло быть сделано ранее, и сохранит необходимое количество журналов в соответствии с пунктом 1.