为什么crontab任务创建了没执行?

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

为什么会这样呢?

同事提醒我,可能是权限问题,于是我对脚本涉及到的文件都chmod 777一下,然后把crontab任务的时间改成下一分钟...结果,脚本还是没有起来。

后面通过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还没有来得更新我们刚才编辑文件,也就导致任务没有执行了。


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

总结一下,crontab任务没有启动的可能原因:

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

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

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

转载于:https://my.oschina.net/u/1453800/blog/287763

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值