我有 CentOS,当我date在 shell 中运行命令时,它会返回如下内容:
格林威治标准时间 2011 年 4 月 28 日星期四 14:08:20
但是 cron 作业在 PST 时间运行。如果我指定
15 7 * * * 命令
它将在 7 PST 而不是 7 GMT 运行。请告诉我为什么会这样。
谢谢
hwclock 命令的输出:
/usr/sbin/hwclock --utc无法通过任何已知方法访问硬件时钟。
使用 --debug 选项查看我们搜索访问方法的详细信息。
当我使用 debug:
/usr/sbin/hwclock --debughwclock from util-linux-2.13-pre7 hwclock: Open of /dev/rtc failed, errno=2: No such file or directory 运行时。找不到可用的时钟接口。无法通过任何已知方法访问硬件时钟
小智 9
很可能不是你的问题,但值得一提——如果你的 /etc/localtime 在 crond 加载后发生变化,它将继续停留在前一个时区。只需重新启动/重新加载 crond,它就会接受这个更改。
另一个“问题”是 cron 将遵守 TZ 环境变量。这可以在 crontab 中内嵌设置,影响跟随它的任何行,但似乎更有可能在加载 crond 的环境中设置 TZ。
我只是尝试了以下几个变体(调整 hr/min 字段)以确定是否/何时运行这两个作业。填充到 /tmp/tzout.localtime 的输出还应该给你一些关于 $TZ 是否以某种方式在加载 crond 的环境中设置的提示。
* * * * * echo $TZ `date` >> /tmp/tzout.localtime
TZ=GMT
* * * * * echo $TZ `date` >> /tmp/tzout.gmt
Run Code Online (Sandbox Code Playgroud)
虽然我并没有声称确切知道您的问题出在哪里,但希望这对解决方案有所帮助!