我注意到在我的 RHEL 5.5 上,cron 每天启动时间晚了一个小时(凌晨 1 点,而不是午夜)。系统和硬件时钟相同。我如何设置它使其在午夜启动?
日期
[root@a ~]# date
Wed Mar 9 12:44:35 EST 2011
时钟
[root@a ~]# /sbin/hwclock -r
Wed 09 Mar 2011 12:44:42 PM EST -0.000484 seconds
定时任务
0 0 * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1
cron日志
Mar 7 01:00:01 host crond[30420]: (root) CMD (/usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1)
钟
[root@a ~]# cat /etc/sysconfig/clock
ZONE="America/New York"
UTC=true
ARC=false
答案1
您是否更改了系统时区设置?如果是,您是否随后重新启动了 crond 服务?
无论如何,我都会重新启动 cron 守护进程,以确保它使用正确的时区。
# /sbin/service crond restart
答案2
重新启动 crond 并不总是“足够”的。
- 设置
/etc/localtime
为符号链接以链接到其中一个/usr/share/zoneinfo/...
时区文件 - 设置
/etc/sysconfig/clock
为ZONE="CONTINENT/TOWN"
(+ UTC=true 和 ARC=false) - 重启整个机器
答案3
我认为,每天凌晨 1 点运行 cron 作业没有任何问题,只要它们每天运行即可。
检查你的/etc/crontab
文件,我的(RHEL 5.4)默认在凌晨 2:00 运行:
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
查找 cron.daily 行。进行编辑以适应,例如:
01 0 * * * root run-parts /etc/cron.daily
答案4
如果您谈论的是 /etc/cron.daily 中运行的内容,那么这些内容在 /etc/crontab 中定义。确保 /etc/cron.daily 的条目设置为在午夜运行,默认情况下它在 04:02 运行。