crontab - 解决 mac 下通过 crontab 设置了 Python 脚本的定时任务却无法运行
背景
通过 crontab 定时运行 python 脚本来发送钉钉消息
https://www.cnblogs.com/poloyy/p/15565875.html
一开始的定时任务
*/1 * * * * python3 /Users/test.py
确定 Python 脚本是否可正常执行
命令行下敲
python3 /Users/test.py
发现是可以正常运行的
那为什么 crontab 不运行呢?来一步步解决!
OS X 的定时任务统统由 launchctl 来管理的,看看 cron 任务有没有在里面
# 定时任务统统由 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
以为搞定了!结果一分钟后还是不行
验证 crontab 是否可真正执行
# 每分钟输出当前时间到time.txt上. */1 * * * * /bin/date >> /User/time.txt
一分钟后去看,发现是有文件的,证明 crontab 没问题
关键点:绝对路径
一开始写的定时任务中,python3 是相对路径,这是不对的,应该用绝对路径
*/1 * * * * /usr/local/opt/python@3.9/bin/python3.9 /User/test.py
这样就可以正常执行了!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-11-17 搬迁声明
2020-11-17 Docker(35)- docker inspect 命令详解
2020-11-17 Docker(34)- 如何修改 docker 容器的目录映射
2020-11-17 Docker(33)- 如何修改 docker 容器的端口映射