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