Как изменить день недели Logrotate сдвигает файл при настройке еженедельно?

У меня есть следующая конфигурация, которая еженедельно вращает все содержимое папки Google:

/var/log/google/*.log {
        create 0777 www-data www-data
        weekly
        missingok
        rotate 90
        compress
        delaycompress
        notifempty
        olddir /var/log/google/old
}

Теперь дело в том, что он вращается каждый понедельник утром, а я хочу делать еженедельную ротацию каждую среду.

Я думал изменить следующую запись в crontab:

47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )

Но я запутался, если это сработает, потому что я мог найти logrotate в /etc/cron.daily и не в /etc/cron.weekly,

Можно ли менять файлы в среду, кроме понедельника? Если да, то как?

1 ответ

Изменение времени выполнения еженедельных заданий cron не поможет по указанным вами причинам.

Обратите внимание, что руководствоlogrotate говорит о weekly вращение:

   weekly Log  files  are  rotated if the current weekday is less than the
          weekday of the last rotation or if more than a week  has  passed
          since  the  last rotation. This is normally the same as rotating
          logs on the first day of  the  week,  but  it  works  better  if
          logrotate is not run every night.

Вот почему он имеет тенденцию вращаться по понедельникам.

Что вы можете сделать, это запустить специальный, отдельный экземпляр logrotate по средам, который работает только для журналов Google. Например, создать /etc/logrotate-google.conf, содержащий указанную вами конфигурацию, и создайте задание cron, которое запускается по средам (от имени пользователя root, поэтому используйте /etc/crontab, или же /etc/cron.d):

46 6 * * 3 root logrotate /etc/logrotate-google.conf
Другие вопросы по тегам