我想添加一个crontab
条目来执行一个脚本,每30分钟一小时,每小时30分钟或接近一小时。我有以下内容,但它似乎没有在0上运行。
*/30 * * * *
我需要使用哪个字符串?
cron正在OSX上运行。
答案 0 :(得分:457)
执行:
0,30 * * * * your_command
答案 1 :(得分:77)
crontab不理解“时间间隔”,它只能理解“时间表”
有效小时数: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等)< / p>
示例#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:19,2:38 ,2:57等)
注意:包括作者在内的各种用户对此帖进行了一些改进
答案 2 :(得分:71)
试试这个:
0,30 * * * * your command goes here
根据官方Mac OS X crontab(5) manpage,支持/
语法。因此,要弄清楚它为什么不适合你,你需要查看cron的日志。在这些日志中,您应该找到明确的失败消息。
注意:Mac OS X似乎使用Vixie Cron,与Linux和BSD相同。
答案 3 :(得分:9)
如果您的cron作业仅在Mac OS X上运行,则可能需要使用launchd。
来自Scheduling Timed Jobs (official Apple docs):
注意:虽然仍然支持它,但cron不是推荐的解决方案。它已被弃用,支持launchd。
您可以通过简单的网络搜索找到其他信息(例如launchd Wikipedia page)。
答案 4 :(得分:5)
你提到你正在使用OS X-我过去使用过cronnix。它并不像自己编辑那样令人讨厌,但它帮助我了解了这些列的内容。只是一个想法。
答案 5 :(得分:2)
您可以同时使用“,”或划分“ / ”符号。
但是,' / '更好。
假设“每5分钟”一次。如果您使用“,”,则必须按如下方式编写cron作业:
0,5,10,15,20,25,30,35,.... * * * * your_command
这意味着在所有定义的分钟内每小时运行your_command:0,5,10,...
但是,如果你使用'/',你可以写下以下简单和短暂的工作:
*/5 * * * * your_command
这意味着在可分为5分钟或更简单的单词'0,5,10,...'中运行your_command
所以,可分的符号'/'总是最好的选择;