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

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

/logs/*/log {
    daily
    rotate 60
}

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

Мои вопросы: эти:

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

Теги

Похожие вопросы