Mac OS下Cronjob运行无输出且日志为空问题咨询
macOS Big Sur Cron定时任务无输出问题解决方案
- 第一步:修复Python路径指向问题
macOS Big Sur默认没有配置python命令的软链接,系统仅自带python3,你可以先在终端执行which python3获取Python的绝对路径,将Cron任务中的/usr/bin/env python替换为对应路径,比如/usr/bin/python3或者brew安装的/opt/homebrew/bin/python3。 - 第二步:捕获错误输出定位问题
你当前的配置仅重定向了标准输出,脚本执行的报错信息不会写入test.txt,将Cron命令调整为如下即可同时捕获错误输出:
调整后等待1分钟查看test.txt内容,即可看到具体的报错信息(比如找不到命令、脚本语法错误、依赖缺失等)。* * * * * cd /Users/name/Documents/Jobs && /usr/bin/env python3 test.py >> /Users/name/Documents/Jobs/test.txt 2>&1 - 第三步:补全Cron运行环境配置
Cron的默认运行环境和用户终端的环境变量不一致,没有继承你配置的PATH等参数。可以在crontab文件的最顶部提前声明PATH变量,比如:
同时要保证test.py脚本中读取的所有外部文件都使用绝对路径,避免Cron执行时找不到对应文件。PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin * * * * * cd /Users/name/Documents/Jobs && /usr/bin/env python3 test.py >> /Users/name/Documents/Jobs/test.txt 2>&1 - 第四步:校验Cron权限配置
确认你已经在「系统偏好设置>安全性与隐私>隐私>完全磁盘访问权限」列表中添加了/usr/sbin/cron程序,仅授予终端权限不会生效。另外可以先在终端手动执行完整的Cron命令,确认命令本身可以正常运行、可以向test.txt写入内容,排除脚本本身的问题。
内容的提问来源于stack exchange,提问作者S44
相关产品推荐
相关产品推荐

