今天在写服务器的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