在OSX El Capitan打破crontab?

时间:2015-09-25 12:07:52

标签: macos cron

问题。 cron是否适用于OSX El Capitan?

背景。我在OSX上使用crontab多年,但是对于El Capitan似乎没有用。我将用户名添加到/usr/lib/cron/cron.allow甚至重新启动了计算机,但我的cron工作仍然没有做任何事情,也没有向我发送错误信息。这些联机帮助表明Apple并不希望人们使用cron,但是他们并没有说它没有功能(但是)。

6 个答案:

答案 0 :(得分:16)

对于通过Google发现此问题的任何人来说,这是另一个答案。结果并不多。

对我来说,let questionvalue : NSInteger = entry.objectForKey("value") as! Int/usr/lib/cron符号链接到/var/at(我从未听说过......),/var/at有一个cron.allow文件,我的用户名没有,所以运行sudo vi /var/at/cron.allow并添加我的用户名(以某种方式将echo重定向到该文件中不起作用...)修复它。

答案 1 :(得分:10)

对于Mojave,完全磁盘访问可防止您更改系统文件(其中包括隐私相关数据以及crontabs等系统配置)。

启用访问权限:

  • 转到系统偏好设置> 安全和隐私> 隐私> 完全磁盘访问
  • 按下+按钮
  • 添加您的终端应用(例如/Applications/Utilities/Terminal.app或/Applications/iTerm.app)
  • 重新启动终端应用程序
  • 配置cron
  • 可选,但强烈建议:完成后从完整磁盘访问中删除终端应用

答案 2 :(得分:5)

在MacBook上,使用El Capitan(10.11.5)," cron"仍然很好。

" /usr/lib/cron.deny"是默认值(列出" Guest"仅限),并且没有" cron.allow"。不要记得做任何自定义工作(没有init / config文件mods,没有chmod' s,没有文件/目录创建/删除等)。

(使用10.6。*直到4月MacBook死亡。5月中旬开始使用10.11,在10.11.5更新后恢复我的crontab(5月下旬?)。所以不知道cron是否是在10.11下工作,或通过10.11.5更新重新启用。)

尝试这个简单的测试:" crontab -e",然后" * / 5 * * * * date>> /tmp/z.date" ;.应该每五分钟看一个新的日期。

如果有效,请尝试" * / 5 * * * * env>> /tmp/z.date.1" ;,并检查您的环境。例如,默认PATH很短。

顺便说一下," at"是批处理作业队列。 " at"," batch"和" cron"通常组合在一起,因为它们会做同样的变化。

答案 3 :(得分:3)

如果您输入cd /usr/lib/cron,然后输入ls,则会看到您拥有at.denycron.deny,但没有at.allowcron.allow。运行sudo nano cron.allow,然后每行输入一个用户名。为at.allow创建一个副本。我创建了这两个文件,它开始运行。

答案 4 :(得分:2)

当机器处于睡眠状态时,cron将完全跳过任何作业。尝试检查节能设置(见下文)。

在机器处于睡眠状态时,启动(Apple推荐的替代方案)也不会运行,但不会跳过作业。相反,当机器唤醒时,作业会运行。

Energy Saver Settings

答案 5 :(得分:0)

根据Apple的说法,cron被推迟了一段时间。他们必须终于拔掉了El Capitan的GM。 Apple建议使用launchd而不是cron。这是一个教程: launchd