logrotate усовершенствовал дату в ежедневных вращениях

Я установил logrotate файл конфигурации как это:

/var/log/tomcat/catalina.out{
copytruncate
daily
dateext
rotate 10
missingok
notifempty
}

И в моем/sysconfig/cron файле настроек я установил DAILY_TIME="00:00" Это поворачивает журналы, но если журнал имеет дату catalina.out-20150415 это содержит информацию о журнале с даты 20150414, это за один день до этого.

Я должен изменить дату в/sysconfig/cron файле, или возможно я мог achive это с prerotate/endscript опцией?

Насколько я знаю работы DAILY_TIME в 15-минутных разрывах, и я хотел бы иметь максимально perfet, ежедневно регистрируется, которые содержат просто информацию одного дня. Что то, что я получаю теперь, но дата от имени файлов не придерживается содержания в них.

Примечание: Я нахожусь под SLES, где ежедневная работа заданий крона, немного отличающаяся от других дистрибутивов.

0
задан 20 April 2015 в 13:52
1 ответ

Я бы не стал играть с / sysconfig / cron, кроме как установить ежедневные задания cron в полночь, и предпочел бы вместо этого postrotate.

Предположим, что сегодня 17.04.2015, это содержимое вашего каталога после ротации, но до запуска скрипта postrotate:

catalina.out-20150414
catalina.out-20150415
catalina.out-20150417
catalina.out

Обратите внимание, что catalina.out-20150416 отсутствует, поскольку 1) последний файл журнала, созданный ротацией, называется catalina .out-20150417 и 2) журнал, который был создан вчера, был переименован в catalina.out-20150415 , чтобы отразить его содержимое.

Этот сценарий позволяет нам выполнить «слепое переименование». журнала сегодня с датой вчерашнего дня, например:

...
postrotate
    mv "catalina.out-$(date +"%Y%m%d")" "catalina.out-$(date --date="yesterday" +"%Y%m%d")" > /dev/null 2>&1 || true
endscript
...

В случае отсутствия файлов журнала mv выдаст сообщение об ошибке, которое перенаправляется на / dev / null и даст положительный результат значение обеспечивается || true

1
ответ дан 4 December 2019 в 16:58

Теги

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