使每日日志轮换按准确时间运行

使每日日志轮换按准确时间运行

我有 Ubuntu 12.04.2 LTS 服务器。

下面列出的我的每日日志轮换/etc/logrotate.d/是在早上 7:00 左右执行的,但它不是在准确的时间,每天它都在(07:00 - 07:25)的范围内变化,我该如何防止日志轮换的随机时间执行?

/etc/crontab文件内容:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

\# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
0 7     * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

/etc/cron.daily/logrotate内容:

\#!/bin/sh

\# Clean non existent log file entries from status file
cd /var/lib/logrotate
test -e status || touch status
head -1 status > status.clean
sed 's/"//g' status | while read logfile date
do
      [ -e "$logfile" ] && echo "\"$logfile\" $date"
done >> status.clean
mv status.clean status

test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf

相关主题: 指定每日日志轮换的时间

答案1

/etc/cron.daily文件夹包含数十个项目(我的盒子里有 17 个项目),并且logrotate不能保证一开始就能运行。

因此,如果您希望logrotate每天在同一时间运行,请将其作为crontab相关线程中的单个条目:指定每日日志轮换的时间

相关内容