Press "Enter" to skip to content

MAC OS 增加 crontab 定时任务脚本

网上教程很多,我这里记录下自己遇到的几个坑。

  • crontab不执行问题

我按照网上教程,crontab -e 添加了定时任务,发现任务没有按照预期执行。

查阅相关资料显示,透过系统配置(/System/Library/LaunchDaemons/com.vix.cron.plist) ,我们发现定时任务是否启动会依赖系统是否有一个特定的文件(/etc/crontab),那么很简单,我们创建这个文件即可。

sudo touch /etc/crontab

现在再来配置我们的定时任务

crontab /etc/crontab
crontab -e
  • Operation not permitted

发现任务还是不执行,打开控制台能看到个邮件提示

输入mail,输入t,查看邮件,里面显示 /bin/bash: /Users/username/Desktop/cronjob.sh: Operation not permitted

查阅相关资料,显示需要给 crontab 的fulldisk访问权限。具体配置方法网上很多,这里不再赘述。

  • executable file not found in $PATH

因为我是在脚本里面放置了一个docker相关的检查功能,我发现脚本在执行时找不到docker所在位置。通过在脚本开始添加命令 source /etc/profile 解决

#!/bin/bash

source /etc/profile

参考资料:

https://apple.stackexchange.com/questions/378553/crontab-operation-not-permitted

https://segmentfault.com/a/1190000017493725

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注