我正在尝试自动执行一个脚本来备份我的 Mac mini(macOS 11.4)上的几个目录。我想要备份的一些文件存储在安装到 /Volumes/SHASTA 的外部驱动器上。我编写了一个快速启动脚本,只是为了看看它是否可以访问该目录,但它似乎出错了。以下是我写的内容:
<?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>local.resticd</string>
<key>StandardOutPath</key>
<string>/Users/myname/test.txt</string>
<key>StandardErrorPath</key>
<string>/Users/myname/test2.txt</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/caffeinate</string>
<string>/bin/ls</string>
<string>/Volumes/SHASTA</string>
</array>
<key>WorkingDirectory</key>
<string>/Users/myname/restic</string>
<key>StartCalendarInterval</key>
<dict>
<key>Weekday</key>
<integer>0</integer>
<key>Hour</key>
<integer>23</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
不幸的是,我从该脚本获得的唯一输出是:
ls: SHASTA: Operation not permitted
在标准错误输出中。我甚至不确定要尝试获取 launchd 权限来访问此驱动器,因为它已经在 root 权限下运行。
答案1
我解决了这个问题。问题最终是 caffeinate 可执行文件(我之所以使用它,是因为当我稍后添加备份脚本时,我想让机器不进入睡眠状态)没有完整的磁盘权限。这阻止了它访问外部驱动器。在设置中将 caffeinate 添加到完整磁盘权限列表中解决了这个问题。