我希望添加一个crontab条目,以便每隔30分钟、整点和整点后30分钟执行一个脚本。我有以下,但它似乎不运行在0。

*/30 * * * *

我需要使用什么字符串?

cron在OSX上运行。


当前回答

你提到你在使用OS X-我过去用过cronnix。它不像自己编辑它那样令人讨厌,但它帮助我很快了解了列是什么。只是一个想法。

其他回答

Crontab不理解"interval ",它只理解"schedule"

有效小时:0-23——有效分钟:0-59

示例# 1

30 * * * * your_command

这意味着“当每小时的分钟是30时运行”(会在:1:30,2:30,3:30等时间运行)

例# 2

*/30 * * * * your_command

这意味着“当每个小时的分钟能被30整除时运行”(会在:1:30,2:00,2:30,3:00等时间运行)

示例# 3

0,30 * * * * your_command

这意味着“当每小时的分钟为0或30时运行”(将在:1:30,2:00,2:30,3:00等时间运行)

这是实现与示例#2相同结果的另一种方法

示例# 4

19 * * * * your_command

这意味着“当每小时的分钟是19时运行”(会运行在:1:19,2:19,3:19,等等)

例# 5

*/19 * * * * your_command

这意味着“当每个小时的分钟能被19整除时运行”(会在:1:19,1:38,1:57,2:00,2:19,2:38,2:57,3:00等时间运行)

注意:包括作者在内的不同用户对这篇文章进行了一些改进

如果你的cron作业只在Mac OS X上运行,你可能想使用launchd代替。

来自Scheduling Timed Jobs(苹果官方文档):

注意:尽管仍然支持cron,但cron不是推荐的解决方案。它已被弃用,而支持launchd。

您可以通过简单的网络搜索找到其他信息(例如launchd维基百科页面)。

你可以同时使用','或除'/'符号。但是,'/'更好。假设“每5分钟”的情况。如果你使用',',你必须像下面这样编写cron作业:

0,5,10,15,20,25,30,35,....    *      *     *   * your_command

它意味着在所有定义的分钟内每小时运行your_command: 0,5,10,… 然而,如果你使用'/',你可以写以下简单而简短的作业:

*/5  *  *  *  *  your_command

这意味着在可以被5整除的分钟内运行your_command,或者用更简单的话来说,'0,5,10,…' 所以,可分割符号'/'总是最好的选择;

你提到你在使用OS X-我过去用过cronnix。它不像自己编辑它那样令人讨厌,但它帮助我很快了解了列是什么。只是一个想法。

试试这个:

0,30 * * * * your command goes here

根据Mac OS X crontab(5)官方手册,支持/语法。因此,要弄清楚为什么它不适合您,您需要查看cron的日志。在这些日志中,您应该会发现一条清晰的失败消息。

注意:Mac OS X似乎使用Vixie Cron,与Linux和bsd相同。