Назад | Перейти на главную страницу

Директива logrotate 'rotate' и переход с ежедневного на еженедельный

У меня есть сервер, собирающий сообщения системного журнала из сети. Logrotate в настоящее время настроен и работает, и его конфигурация выглядит так:

/logs/*/log {
    daily
    rotate 60
}

Вместо ежедневной ротации я бы предпочел еженедельно. Очевидно, я веду журналы за 60 дней, поэтому я, вероятно, изменил бы rotate 60 к rotate 8, который будет хранить журналы за 8 недель.

Вот мои вопросы:

  1. Если я перейду с ежедневного на еженедельный и сохраню 8 журналов, при запуске logrotate удалит ли он 52 самых старых ежедневных журнала или достаточно ли умен, чтобы заметить отметки даты в файлах и понять, что 8 недель это 2 месяца назад?
  2. Если я запустил logrotate вручную с -f флаг для принудительного вращения, и я сделал это 8 раз, смогу ли я полностью стереть все журналы?
  3. Если я пойду в logrotate.status файл и вручную удалите один конкретный журнал, что произойдет с этим конкретным журналом при следующем запуске logrotate?
  1. Если вы измените количество журналов, то при следующем запуске logrotate гарантирует, что будет сохранено не более такого количества журналов. Число не обязательно связано с количеством дней (вы можете запускать logrotate ежечасно, если настроите его правильно).
  2. Да, если у вас нет notifempty настройку (которую я рекомендую).
  3. То же, как если бы вы повторно добавили этот журнал в конфигурацию после его удаления. Он будет вращать журнал, поскольку он не знает, когда это могло быть сделано ранее, и сохранит необходимое количество журналов в соответствии с пунктом 1.