为什么crontab任务创建了没执行?
为什么crontab任务创建了没执行?
7分04秒 发表于3年前
为什么crontab任务创建了没执行?
  • 发表于 3年前
  • 阅读 328
  • 收藏 11
  • 点赞 1
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

上周在公司写了一个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分钟后。

共有 人打赏支持
粉丝 6
博文 26
码字总数 15705
×
7分04秒
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: