Как изменить день недели 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