Mac设置crontab

文章讲述了如何在Mac上设置定时任务,由于crontab-e命令不可用,作者指导读者通过launchctl管理和配置cron任务,涉及权限设置、确认cron可执行性,以及使用绝对路径解决Python脚本执行问题。
摘要由CSDN通过智能技术生成

最近要使用到定时任务,linux服务器上直接

crontab -e 就行,奈何mac上没有这个命令,捣鼓一番,记录如下

设置一个定时任务,任务如下,该任务在linux服务器上是可以执行的。

*/1 * * * * python3 /Users/test.py

但是这个任务在mac上是不能执行的。

需要按照一下步骤执行,肯定能搞定,如果还搞不定,私信我。

1、确保crontab在mac上是运行的

# 定时任务统统由 launchctl 来管理的,看看 cron 任务有没有在里面
sudo launchctl list | grep cron 

# 有记录。查看一下启动项的配置
locate com.vix.cron

# 创建一个database
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

# 查看 /etc/crontab 是否存在
ls -alF /etc/crontab

# 创建该文件(如果不存在)
sudo touch /etc/crontab

2、验证crontab是否可以执行

crontab -e:编写定时任务脚本

验证 crontab 是否可真正执行
# 每分钟输出当前时间到time.txt上.
*/1 * * * * /bin/date >> /User/time.txt 

如果文件有内容,说明能执行。跳转到第4步。

如果文件没有内容,说明crontab不能执行,问题点出在了mac的系统上,看第3步。

3、mac开启crontab的权限

切记,需要勾选。

系统是 OSX 10.15 Catalina 以上的

对 cron 的权限进行了限制

需要在 系统偏好设置 里将 cron 添加 完全磁盘访问权限

重点在这里:::

系统偏好设置 -> 安全性与隐私 -> 选择 隐私 -> 左侧菜单找到完全磁盘访问权限


cron 程序所在目录:

终端输入 whereis cron

打印:/usr/sbin/cron

再输入 open /usr/sbin

在打开的文件夹内找到 cron

把这个文件直接拖动到 系统偏好设置 右侧应用列表框内。勾选上。

可以参考这个动图:https://www.d3tt.com/view/109

4、使用绝对路径

使用python脚本,可能任务还是不执行,主要的原因是:crontab中找不到python的路径。

这个时候需要使用python的绝对路径以及脚本的绝对路径。

如何找python的绝对路径。
which python3
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mac下,可以使用以下两种方法设置定时任务: 1. 使用cronjob cronjob是Mac OS中自带的任务管理器。可以通过以下步骤设置定时任务: 打开终端,输入以下命令: ``` crontab -e ``` 这将打开cronjob的编辑页面。在页面中添加你想要执行的命令及其执行时间。例如,如果你想每天晚上8点执行一个Python脚本,可以添加以下内容: ``` 0 20 * * * /usr/bin/python /path/to/your/script.py ``` 这将在每晚8点执行script.py文件。 2. 使用launchd launchd是Mac OS的系统级别的任务管理器。可以通过以下步骤设置定时任务: 创建一个plist文件,该文件包含你想要执行的命令及其执行时间。例如,以下是一个用于每天晚上8点执行Python脚本的plist文件: ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.example.pythonjob</string> <key>ProgramArguments</key> <array> <string>/usr/bin/python</string> <string>/path/to/your/script.py</string> </array> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>20</integer> <key>Minute</key> <integer>0</integer> </dict> </dict> </plist> ``` 将该文件保存到~/Library/LaunchAgents目录中。 使用以下命令加载该任务: ``` launchctl load ~/Library/LaunchAgents/com.example.pythonjob.plist ``` 这将在每晚8点执行script.py文件。 无论使用哪种方法,都需要确保Python环境配置正确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值