OSX Catalina上的CronJobs未执行

3
我知道苹果已经废弃了cron,推荐使用launchd。但我想使用cron作业而不是launchd,因为launchd不能像cron一样提供相同的时间调度功能。
以下是我的解决方法:
  • 我已经允许我的/usr/sbin/cron具有完整的磁盘访问权限,并在root用户上设置了一个简单的作业“* * * * * echo“test””,以验证cron是否正在执行。
  • 我检查了我的根邮件和用户邮件,然后指定cron发送到一个单独的电子邮件,但没有成功。
  • 我还检查了我的cron.deny和at.deny文件,发现只有Guest无法执行cron作业。
  • 然后我创建了一个cron.allow和at.allow文件,并将我的用户和根用户添加到这些文件中,但仍然没有成功。
请问有没有其他建议可以让cron作业在OSX Catalina上执行?由于这太难运行,我即将卸载Catalina并在备用的Mac Mini上安装Ubuntu。非常感谢任何建议。
在终端执行命令“sudo crontab -l | pbcopy”没有输出,
但执行命令“sudo crontab -l”会输出以下内容:
“* * * * * echo“test””
我必须添加sudo,因为cron作业是在root用户下运行。
现在我能够正确地看到错误 - 我的机器没有任何cron日志,并且没有将输出发送到邮件的正常cron行为。
我的解决方法只是创建一个txt文件并记录它。
* * * * * pathtojob >> pathtologfile 2>&1

>> 表示将内容追加到日志文件中,2>&1 表示将标准输出和错误写入到该文件。感谢那些帮助我进行故障排除的人。


crontab -l | pbcopy没有输出,但是crontab -l有。已将此信息添加到问题中。 - zeroter5
输出已经复制到您的剪贴板中...可以直接粘贴。 - Mark Setchell
你添加 crontab 条目后,是否重新启动了计算机?如果在启动时没有要执行的任务,我认为 crond 甚至不会启动。 - Mark Setchell
你的 crond 是否正在运行?sudo ps -aef | grep cron - Mark Setchell
这将响应测试作业正在运行 - 谢谢。 - zeroter5
显示剩余2条评论
1个回答

2

您可以检查 /var/log/cron 中的错误。那里可能会有一个错误。您确定测试echo脚本工作正常吗?也请尝试手动执行它。最好将cron作业的输出重定向到文件中。这样,您可以通过检查文件是否被填充来跟踪cron作业是否正在运行。


2
我的机器上/var/log中没有cron - 这是有原因的吗?另外,我如何将输出定向到特定文件? - zeroter5
由于cron已被弃用,因此在OSX中可能无法使用默认日志记录。但是,要将输出定向到特定文件,您可以使用以下命令:* * * * * echo "test" > cron_output.log - h_zaira
我在桌面上创建了一个txt文件,让cronjob写入它,然后我看到了...TEST!!! 将crontab更改为>>而不是>以进行覆盖。谢谢!我会点赞你的回答,但遗憾的是我没有15个声望。 - zeroter5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接