为何crontab任务建立了没执行?

上周在公司写了一个crontab任务,发现没有执行。我仔细查看了sh脚本,里面用到的python命令以及文件,我都采用了全路径。我直接在命令行下跑这个sh脚本,是能正常使用的。html

为何会这样呢?python

同事提醒我,多是权限问题,因而我对脚本涉及到的文件都chmod 777一下,而后把crontab任务的时间改为下一分钟...结果,脚本仍是没有起来。测试

后面经过google了解到:google

每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不能够直接编辑的,只能够用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。引用于:http://www.cnblogs.com/cosiray/archive/2012/03/09/2387361.html

这告诉我,测试crontab时,不该该把跑脚本的时间设置成离如今1分钟之内。也就是说,如今若是是14:24分,你设置cronbtab14:25跑,编辑完crontab后,cron尚未来得更新咱们刚才编辑文件,也就致使任务没有执行了。
spa


我把任务的启动时间从新设置后,crontab任务就正常启动了。命令行

总结一下,crontab任务没有启动的可能缘由:orm

  • crontab的环境变量和控制台是不一样的,好比控制台能直接找到python命令,而到了crontab下,要写python安装的全路径。htm

  • 保证脚本文件在crontab下有权限运行。blog

  • 测试crontab时,可能因为启动时间设置不正确,而致使crontab错过执行的时机。建议测试时,把启动的时间设置成2分钟后。
    crontab

相关文章
相关标签/搜索