我写了个计划任务,需要每分钟执行一次,对某个服务当天的日志进行读取,但是我发现每次上午的内容要到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


顺利解决问题