crontab 不是 运行 local/bin/ 脚本。卡塔利娜,大苏尔

Crontab is not running local/bin/ script. Catalina, BigSur

我刚开始使用 crontab,但遇到了一些问题。我已经阅读了一些关于如何在 macOS 上使用它的帖子,但它仍然无法正常工作。

所以, 我写 crontab -e,然后将其编辑为 */1 * * * * cliclick -w 1 m:3,3(例如)- 这意味着每 1 分钟在 x=3;y=3 中重复点击。 一切都没有改变。 但是,当我从终端仅使用此命令时,一切正常。

我已经尝试创建一个 script.sh 文件,但情况相同:手动命令有效,crontab 无效。

也许,我做错了什么? 更新:crontab 具有完整的磁盘访问权限。

更新 2: 我尝试在 BigSur 上再做一次。首先,我使用一个更简单的命令,如 echo:

* * * * * echo 'test' >> /*/Desktop/text.txt 它运作良好。之后,我自己写 script.sh

echo '2test' >> /Users/***/Desktop/t.txt
/usr/local/bin/cliclick -w 1 m:1,3
cliclick -w 1 m:55,44

它的 cliclick 不起作用,因为其他 bin 文件位于 /usr/local/bin/(cliclick 位于此路径)

请注意,如果我执行 ./script.sh,那么在这两种情况下单击都可以正常工作。

我用谷歌搜索了一下,发现 运行 cliclick(和其他)不可能 虽然 crontabhttps://github.com/BlueM/cliclick/issues/103

您可以通过如下配置检查 运行 cron 是否有任何错误。

*/1 * * * * cliclick -w 1 m:3,3 >> output.log 2>&1

最后一部分 2>&1 也会将 STDERR 重定向到 output.log。

授予 terminal.app 完整磁盘访问权限。

您需要在“设置”>“安全和隐私”>“隐私”中为 terminal.app 授权完整磁盘访问

我的问题是,cron 无法访问磁盘,因此它无法 运行 我的脚本。我必须为 /usr/sbin/cron

授予完整磁盘访问权限

查看此博客 post:https://blog.bejarano.io/fixing-cron-jobs-in-mojave/

(macOS Big Sur 版本 11.2.3)

首先你必须使用 crontab -l.

验证 cron 是否存在

创建完 cronjob 后,您会看到类似“crontab:正在安装新的 crontab”的内容。 (如果您没有看到此消息,则表示该职位尚未创建,并且不会在您 运行 crontab -l 时显示)

为了确保 cronjob 执行,我必须按照 @roNn23 @berkinet 的建议进行操作。详细说明以防链接文章失效:

将“完整磁盘访问权限”(在“系统偏好设置”>“安全和隐私”>“隐私”下)授予:-

  1. /usr/sbin/cron 使用转到文件夹 快捷方式“command + shift + G”
  2. Terminal.app