macOS下使用crontab定时任务

macOS下的crontab定时任务和Linux略有不同,它是由launchctl来管理的。

首先查看服务是否运行

sudo launchctl list | grep cron

一般会输出

11782   0   com.vix.cron

-   0   com.vix.cron

接下来查看启动项的配置:

locate com.vix.cron

如果提示database不存在,按照提示步骤创建一个:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

查看配置项

cat /System/Library/LaunchDaemons/com.vix.cron.plist

过个几分钟再次执行

locate com.vix.cron

如果输出/System/Library/LaunchDaemons/com.vix.cron.plist表示启动项已配置好了。

最后检查下/etc/crontab文件是否存在,如果不存在则创建

sudo touch /etc/crontab

这些都检查完之后就可以通过crontab -e创建任务了。

PS:在macOS 10.15 Catalina以上的系统上,由于权限升级,还需要给cron添加完全磁盘访问权限,不然定时任务还是无法执行。

具体方法,先打开系统偏好设置->隐私->完全磁盘访问权限,左下角解锁。然后打开Finder,菜单栏前往->前往文件夹,输入/usr/sbin,找到cron,把它拖到完全磁盘访问权限的列表中。

Leave a Comment

豫ICP备19001387号-1