我可以使用 Cron 在 macOS 上安排每日提交吗?
Can I use Cron to schedule a daily commit on macOS?
我目前正在从事一个项目,我希望每天将其提交到回购作为第三备份。我编写了以下小脚本来快速提交当天的更改:
REPO_PATH="/Users/niekvandepas/my-project"
git -C "$REPO_PATH" add -A
git -C "$REPO_PATH" commit -m "`date`"
脚本按预期工作,提交我当天的更改并带有时间戳。现在我希望能够每天自动 运行 这个脚本。我尝试为此使用 cron
,但我 运行 遇到了一个关于(我认为)目录或文件权限的问题。
我已将上述脚本放入 /usr/local/bin/commitscript.sh
并验证它仍然有效。然后我将以下行添加到我的用户 crontab (crontab -e
, no sudo
):
0 10 * * * /usr/local/bin/commitscript.sh > /tmp/cron.log 2> /tmp/cron.err
然而,当 10:00 出现时,我的更改没有提交,并且 /tmp/cron.err
有以下几行:
fatal: Unable to read current working directory: Operation not permitted
fatal: Unable to read current working directory: Operation not permitted
我假设这两个都是致命的 git 错误,分别是 git add
和 git commit
。这让我感到困惑,因为它是我的用户 crontab,而 git 存储库位于我的主目录中。有什么想法吗?
顺便说一句,我运行正在使用 macOS Big Sur 11.4 并已授予 iTerm 完整磁盘访问权限。
您可能需要像使用 iTerm 一样手动为 cron
可执行文件提供所需的访问权限。这有时是必要的,因为后台的 cron 作业 运行 可能需要自己获得授权才能访问某些资源。
要授予 /usr/sbin/cron
完整磁盘访问权限,您可以打开 系统偏好设置 ,导航至 安全与隐私 ,select Privacy 在选项卡栏和 select Full Disk Access 在左侧边栏。然后点击 + 按钮,搜索 & select 可执行文件 /usr/sbin/cron
然后点击 打开 .
这将在应用程序列表中添加一个条目,您的 cronjob 现在应该具有所需的权限。这是系统偏好设置面板的屏幕截图:
我目前正在从事一个项目,我希望每天将其提交到回购作为第三备份。我编写了以下小脚本来快速提交当天的更改:
REPO_PATH="/Users/niekvandepas/my-project"
git -C "$REPO_PATH" add -A
git -C "$REPO_PATH" commit -m "`date`"
脚本按预期工作,提交我当天的更改并带有时间戳。现在我希望能够每天自动 运行 这个脚本。我尝试为此使用 cron
,但我 运行 遇到了一个关于(我认为)目录或文件权限的问题。
我已将上述脚本放入 /usr/local/bin/commitscript.sh
并验证它仍然有效。然后我将以下行添加到我的用户 crontab (crontab -e
, no sudo
):
0 10 * * * /usr/local/bin/commitscript.sh > /tmp/cron.log 2> /tmp/cron.err
然而,当 10:00 出现时,我的更改没有提交,并且 /tmp/cron.err
有以下几行:
fatal: Unable to read current working directory: Operation not permitted
fatal: Unable to read current working directory: Operation not permitted
我假设这两个都是致命的 git 错误,分别是 git add
和 git commit
。这让我感到困惑,因为它是我的用户 crontab,而 git 存储库位于我的主目录中。有什么想法吗?
顺便说一句,我运行正在使用 macOS Big Sur 11.4 并已授予 iTerm 完整磁盘访问权限。
您可能需要像使用 iTerm 一样手动为 cron
可执行文件提供所需的访问权限。这有时是必要的,因为后台的 cron 作业 运行 可能需要自己获得授权才能访问某些资源。
要授予 /usr/sbin/cron
完整磁盘访问权限,您可以打开 系统偏好设置 ,导航至 安全与隐私 ,select Privacy 在选项卡栏和 select Full Disk Access 在左侧边栏。然后点击 + 按钮,搜索 & select 可执行文件 /usr/sbin/cron
然后点击 打开 .
这将在应用程序列表中添加一个条目,您的 cronjob 现在应该具有所需的权限。这是系统偏好设置面板的屏幕截图: