如何更改 Logrotate 按周配置时移动文件的星期几?

如何更改 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

相关内容