crontab执行时间与系统时间不一致

我写了个计划任务,需要每分钟执行一次,对某个服务当天的日志进行读取,但是我发现每次上午的内容要到12点才给我读出来。于是我看了下/var/log/cron

Aug  3 23:24:01 localhost CROND[7301]: (root) CMD (/data/scripts/demo.sh)

crontab的日志里执行时间居然是昨天的晚上十一点,差了整整12个小时,但是我发现系统时间和硬件时间都是对的。

[root@localhost etc]# date
Wed Aug  4 11:24:17 CST 2021
[root@localhost etc]# hwclock
Wed 04 Aug 2021 11:24:21 AM CST  -0.974593 seconds

我又看了下/etc/localtime

[root@localhost ~]# ll /etc/localtime
lrwxrwxrwx. 1 root root 38 May  7  2019 /etc/localtime -> ../usr/share/zoneinfo/America/New_York

是纽约时间,应该是这个的原因了。
修改时区,然后重启crontab

rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

systemctl restart crond

重启后发现,日志的时间依然还是纽约时间。尝试重启rsyslog

systemctl restart rsyslog

顺利解决问题

原文地址:https://www.cnblogs.com/CharrammaBlog/p/15098133.html