macOS Ventura中Shell脚本无法通过crontab执行的求助
macOS Ventura下crontab调用Shell脚本提示"Operation not permitted"的解决方法
给相关程序添加完整磁盘访问权限
macOS Ventura的隐私控制会限制cron和bash的磁盘访问权限,按以下步骤操作:- 打开「系统设置」→「隐私与安全性」→「完整磁盘访问权限」
- 点击左下角锁图标解锁,点击+号,通过「前往」→「前往文件夹」分别找到
/bin/bash和/usr/sbin/cron,添加到权限列表中 - 重启终端或电脑使权限生效
修正crontab中的路径写法
路径包含空格时,务必用引号包裹或正确转义空格,两种写法任选其一:# 用引号包裹完整路径 * * * * * "/Users/nadnosliw/Documents/4 Project Folders/Shell Script Project Files/cronjob_test.sh" # 转义空格 * * * * * /Users/nadnosliw/Documents/4\ Project\ Folders/Shell\ Script\ Project\ Files/cronjob_test.sh同时确保脚本开头的shebang为
#!/bin/bash,与系统默认Shell匹配确认脚本权限与所有者
重新执行赋予执行权限的命令:chmod +x "/Users/nadnosliw/Documents/4 Project Folders/Shell Script Project Files/cronjob_test.sh"用
ls -l命令检查脚本所有者是否为当前用户,确保无权限归属问题测试基础cron环境
先创建极简测试脚本验证cron是否正常工作:- 新建
test_cron.sh,内容为:#!/bin/bash echo "Cron test success: $(date)" >> ~/cron_test.log - 赋予执行权限后添加到crontab,若能生成
~/cron_test.log,说明cron环境正常,问题出在原脚本或路径配置
- 新建
重启cron服务
执行以下命令重启cron服务,确保权限变更生效:sudo launchctl stop com.vix.cron sudo launchctl start com.vix.cron
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

