问题示例:
* 9 * * * echo 9
* 10 * * * echo 10
上面的代码每分钟都会向用户发送一封电子邮件,但是所有“ 9”响应将在10:00 AM-> 10:59 AM发生,而“ 10”响应将在11:00 AM-> 11:59 AM出现。
做某事
* * * * * /bin/date ; /bin/date -u
返回预期的(正确的)日期和时间。UTC和当地时间(美国/丹佛)都是如此。将此作业更改为在特定时间每分钟运行一次,将导致偏移(告诉作业以9运行,10运行,依此类推)。
我当前完成的调试:
好吧,那很奇怪。也许我的时区文件被弄乱了?让我们检查一下
diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Files /etc/localtime and /usr/share/zoneinfo/America/Denver are identical
我已经检查了硬件时钟,以查看它是否关闭或以某种方式与我的本地设置(以root用户身份运行)不同。
date ; hwclock
Wed Oct 26 10:50:13 MDT 2016
Wed 26 Oct 2016 10:50:14 AM MDT -0.204171 seconds
似乎要休息一秒钟,但这不应该使我的cron作业按计划运行一整个小时,对吗?
我也确信以下几点:
- 我的时区最近改变了吗?没有
- 您是否尝试过手动修复时区?是
- 固定时区后,您是否重置了cron?是
- 我是否确定cron服务已重新启动?是
- 我是否重新启动了cron服务?是
- 您真的确定cron重新启动了吗?100%确定Cron已重新启动
其他可能相关的信息:
运行Debian。
cat /etc/debian_version
8.6
当前内核
uname -a
Linux BigBox 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux
更新的调试:
运行'hwclock --systohc',行为没有明显变化。跑此命令检查
date;hwclock
Wed Oct 26 12:39:09 MDT 2016
Wed 26 Oct 2016 12:39:11 PM MDT -0.875328 seconds
我无法运行“ cat / etc / sysconfig / clock”,因为此文件不存在。在/ etc /树下运行find命令以查找“ clock”,确认我那里没有该名称的文件。
检查我是否知道有什么设置了CRON_TZ变量。它既没有在用户级别设置,也没有在根级别设置。使cron回显它们,但不输出。
尝试
—
史蒂夫
hwclock --systohc
仅出于完整性考虑,并增加cat /etc/sysconfig/clock
疑问?
在我的信息中添加了两个建议,可惜的是它们都没有提供太多价值。在我可以看到的任何环境下均未设置CRON_TZ,重新同步hwclock产生的结果与以前相同(无论如何都进行了检查以查看它是否已更改,但未更改),并且我没有'/ etc / sysconfig / clock文件。
—
jmurrayufo
CRON_TZ
的环境变量设置的任何地方?