Mac定时任务crontab不执行,手动可以执行crontab自动无法执行解决方法
最近需要在mac笔记本上定时执行一段python代码,定时抓取一些网站信息,可是在设置crontab之后,死活不执行,百度找了几个小时,都是一些重复内容,这也是让人比较无语的,浪费时间,特总结出来,希望帮到大家。
我们先检测一下是否crontab真的没有执行。
执行:sudo launchctl list | grep cron 我的结果:257 0 com.vix.cron
说明定时任务功能是开启的,然后再写个最简单的任务,看看到底有没有自动执行,先不要用自己的真实任务测试,我们先建一个定时任务,每分钟往文本文档中插入当前日期。
crontab -e 编辑定时器内容,如下,我是放到我的桌面,替换成自己的目录 * * * * * /bin/date >> /Users/yourname/Desktop/cron.txt
确实,每分钟都会在cron.txt中写入日期,说明定时任务是执行的,我之前就是因为没有做这个测试,一直以为定时任务时没启动,所以方向都搞错了。
现在可以明确,定时任务时启动的,只是我们的脚本没有执行起来。
实际也很简单,我们手动执行某个脚本时,是在当前shell环境下进行的,程序能找到环境变量;而系统自动执行任务调度时,除了默认的环境,是不会加载任何其他环境变量的。因此就需要在crontab文件中指定任务运行所需的所有环境变量。
修改你的脚本
#! /bin/sh source /etc/profile //添加这句, //其他脚本
好了,终于执行了
-END-
点赞(8)