![cron 作业的时区](https://linux22.com/image/562368/cron%20%E4%BD%9C%E4%B8%9A%E7%9A%84%E6%97%B6%E5%8C%BA.png)
我们有一个运行 CentOS 5.5 的 VDS,它是使用 EDT 时区创建的并配置的。我已将其替换为指向(UTC+10) 时区文件etc/localtime
的链接。运行该命令会显示正确的日期和时间。Australia/Melbourne
date
问题是,即使重新启动后,cron 作业的运行方式也好像服务器仍在使用 EDT 时区。例如,应该在凌晨 1:01 运行的作业却在下午 3:01 运行。
我错过了什么?
答案1
更改时区后,重新启动 crond 服务即可,无需重启。不知道为什么你的 cron 仍然使用 EDT 时区,但在你的 cron 行之前插入以下行:
TZ=Australia/Melbourne
* * * * * ...
然后再试一次。
答案2
我遇到了同样的问题 - 在我更改系统时区后,cron 的日志条目仍处于旧时区,即使重新启动 crond 也是如此。然后我注意到所有日志条目都已关闭 - 消息、邮件和任何其他使用 syslog 的程序。
service rsyslog restart
syslog 所做的第一件事是记录一条消息(这很自然),因此我能够看到它具有正确的时间戳。我重新启动了 crond,只是为了确保它的日志条目也正确。