CrontJob 的时区问题

作者: , 共 450 字

今天发现一台新的服务器( ubuntu 18.04 )的计划任务异常,但非常有规律,就是所有任务都比预设时间晚了 8 个小时执行。自然而言猜测是时区设置问题。

奇怪的是date -R里显示的时区是上海+8 时区,符合预期。有人说这是因为用户 bash 环境设置了TZ环境变量,而计划任务并不会初始化 bash 环境导致的。但我们并没有设置过TZ变量,echo $TZ的结果是空。

然后检查了/etc/localtime/etc/timezone两个文件,发现前者显示CST+8时区,但后者里面是UTC时区,不符合预期。但为什么date -R能得到争取的时区,但cronjob却不能,却不得而知。

最后修改方式:

sudo dpkg-reconfigure tzdata

这时候date -Rmore /etc/localtimemore /etc/timezone都显示正确的时区了。

设置时区之后,最好手工重启cron服务:

sudo /etc/init.d/cron restart

Q. E. D.

IT » Linux系统配置
查看当前 DNS :
新服务器上遇到一个问题, CronJob 计划任务突然不执行,所有用户的任务都失效,之前定时任务执行时发送的邮件也没了。而且间续发作,准确说,每天白天有 14 小时左右不执行,比如从早上 8 点到晚上 10 点,但有时候是从早上 7 点到晚上 9 点。