我最近从 OSX 13.2 更新到 13.5.2,现在我所有的 cronjobs 都失败了。
我尝试在 cronjob 中运行 rsync,但总是失败,最终我发现问题在于我的 cron job 没有编辑权限现存的由于某种原因文件~/Downloads
?(在中运行良好~
)。 cron
在系统设置中具有完全磁盘访问权限。
我制定了我的 crontab:
* * * * * echo "Hello World" >> "/Users/me/Downloads/foo.txt"
* * * * * echo "Hello World " >> "/Users/me/Downloads/bar.txt"
* * * * * whoami >> /Users/me/Downloads/whoami.txt
foo.txt
是我直接用 just 创建的touch foo.txt
,其他两个是通过 cron 任务创建的。该foo.txt
任务失败,其他两个每分钟运行一次。
ls -l
显示:
-rw-r--r--@ 1 me staff 52 Sep 18 10:12 bar.txt
-rw-r--r-- 1 me staff 0 Sep 18 10:06 foo.txt
-rw-r--r--@ 1 me staff 15 Sep 18 10:12 whoami.txt
并且考虑到唯一明显不同的是@
,我发现这个帖子。
ls -l@
没有任何明显有用的结果:
-rw-r--r--@ 1 me staff 143 Sep 18 10:19 bar.txt
com.apple.macl 72
-rw-r--r-- 1 me staff 0 Sep 18 10:19 foo.txt
-rw-r--r--@ 1 me staff 50 Sep 18 10:19 whoami.txt
com.apple.macl 72
来自crontab的邮件:
From me@computer Mon Sep 18 10:20:01 2023
Return-Path: <me@computer>
X-Original-To: me
Delivered-To: me@computer
Received: by computer (Postfix, from userid 501)
id A3DCC30D0D9; Mon, 18 Sep 2023 10:20:01 +0200 (CEST)
From: me@computer (Cron Daemon)
To: me@computer
Subject: Cron <me@computer> echo "Hello World" >> "/Users/me/Downloads/foo.txt"
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=me>
X-Cron-Env: <USER=me>
Message-Id: <20230918082001.A3DCC30D0D9@computer>
Date: Mon, 18 Sep 2023 10:20:01 +0200 (CEST)
/bin/sh: /Users/me/Downloads/foo.txt: Operation not permitted
答案1
顺便说一句,我刚刚将我的 rsync 作业移到了外部文件夹~/Downloads
,它又可以正常工作了。不过还是很好奇这里出了什么问题