You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS 11.6.1中Cron任务未执行问题求助

macOS 11.6.1下Cron执行zsh脚本无输出的问题排查与解决

问题场景

  • 系统版本:macOS 11.6.1
  • 目标脚本task1.zsh内容:
#!/bin/zsh

/usr/bin/touch /Users/user/Documents/cronjobs/hello.txt
echo hello >> /Users/user/Documents/cronjobs/hello.txt
  • 脚本权限:
-rwxr-x--x   1 user  staff   116B Jun 18 00:15 task1.zsh*
  • 尝试的Cron任务写法(均未生成hello.txt):
# 写法1
* * * * * /Users/user/Documents/cronjobs/task1.zsh

# 写法2
* * * * * cd /Users/user/Documents/cronjobs/ && ./task1.zsh

# 写法3(语法错误,cd后未用分隔符)
* * * * * cd /Users/user/Documents/cronjobs /bin/zsh task1.zsh

# 写法4
* * * * * /bin/zsh /Users/user/Documents/cronjobs/task1.zsh
  • 异常现象:同时添加的Cron任务* * * * * cd /Users/user/Documents/cronjobs && echo check >> cron1.log可正常生成并写入cron1.log,但hello.txt始终无变化

核心原因与解决方法

1. 全磁盘访问权限限制(最可能原因)

macOS Big Sur及以后版本,Cron默认被限制了全磁盘访问权限,无法写入用户的Documents目录,即使路径和权限看似正确。解决步骤:

  • 打开「系统偏好设置」→「安全性与隐私」→「隐私」标签页
  • 找到「全磁盘访问权限」,点击左下角锁图标,输入密码解锁
  • 点击+号,在文件选择窗口中按Cmd+Shift+G,输入/usr/sbin/cron,选中并添加到权限列表
  • 重启Cron服务:
sudo launchctl stop com.vix.cron && sudo launchctl start com.vix.cron

2. 验证脚本与排查日志

  • 手动执行脚本确认功能正常:
/Users/user/Documents/cronjobs/task1.zsh

若手动执行能生成hello.txt,则进一步确认是Cron权限问题

  • 查看Cron执行日志,排查具体报错:
tail -f /var/log/cron

日志中会显示权限拒绝等明确错误信息,帮助定位问题

3. 修正错误的Cron语法

你尝试的第三种写法存在语法错误,cd命令后未用&&或;分隔后续命令,正确写法应为:

* * * * * cd /Users/user/Documents/cronjobs && /bin/zsh task1.zsh

内容的提问来源于stack exchange,提问作者ecjb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 13:42:37