最近遇到个事情,Linux系统中date命令输出正常,但通过crontab执行的脚本,时间总是不正常:
#系统时间正常
[root@localhost tmp]# date
Thu Dec 13 11:41:15 CST 2018
#crontab调用的脚本时间不正常
[root@localhost tmp]# tail alarm.txt
2018-12-13 03:41:03,522 [INFO] <util>:78 process shutting down
2018-12-13 03:41:03,522 [INFO] <util>:78 process shutting down
一看,差距8小时,那肯定是时区设置的问题,果断
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
/etc/init.d/crond restart
结果还是不行…… 哎呦我去……
crontab -e创建一个计划任务
*/1 * * * * date >>/tmp/time.txt
cat /tmp/time.txt
Thu Dec 13 03:30:01 Local time zone must be set--see zic manual page 2018
然后搜到了这里:
https://segmentfault.com/q/1010000008312223
原来升级了glibc之后,localtime的位置和之前也不一样了,crond读取的是另外一个路径下的localtime……
随后find系统内的localtime,并重做软连接即可
ln -sf /etc/localtime /opt/glibc-2.14/etc/localtime