在测试crontab执行脚本的时候,修改了linux的系统时间,crontab不执行了。
今天在写服务器的perl脚本的时候,在完成一版脚本打算通过crontab来测试一下呢,因为直接执行脚本文件是没有问题的,但是当配置到crontab定期执行时就会出现问题,到了指定的时间了,但是脚本文件没有被执行。
后来通过goole搜索到了原因,因为我在测试的时候是直接修改了linux的系统时间,例如:date -s "2016-05-09 01:29:30“ ,因为我的脚本设置在了凌晨1点30分执行,(30 1 * * * /usr/bin/perl /www/bin/123.pl >> /www/bin/123.log)。
所以当我把时间设置好之后,等了半分钟后,脚本也没有执行。
后来发现在修改过时间后必须手动重启crontab,指令如下:
/etc/init.d/crond restart
只有重启crontab才可以,重启服务器是没有作用的。
还有一个解决办法,也是网上找到的,但是没有试,或许会帮到其他人吧:
设置时区,然后重启crond服务:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime service crond restart
作者:纪莫
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
欢迎扫描二维码关注公众号:Jimoer
文章会同步到公众号上面,大家一起成长,共同提升技术能力。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。
您的鼓励是博主的最大动力!