解决Debian系统的Crontab执行时间时差问题

时间:2023-03-09 13:25:19
解决Debian系统的Crontab执行时间时差问题

首先用

* * * * * date >> /root/log.log

做个测试,发现显示的是UTC的时间,但是直接执行date,得到的是CST的时间。可见在Debian里crontab的执行时间与我们date看到的还是有时差。虽然在设执行时间的时候算上时差,也能绕过这个问题,但多少有些不舒服。作为一个轻度完美主义者,在浪费了几个小时后终于在豆豆博客发现解决方法!总结如下:

Debian里设置时间由两部分组成,localtime和timezone。平时直接用tzselect设置了时区后似乎能看到的时间都是正确的,也就忽略了localtime。但实际上crontab的执行时间是受localtime决定的,所以还需要修改这个文件:

rm /etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

然后重启cron

service cron restart

如果一切顺利,那么前面添加计划任务已经能够输出CST的时间了。

如果还是不行,那再试试

dpkg-reconfigure tzdata