如何每30分钟运行一次cron作业?

Dar*_*ein 210 linux macos cron

我希望crontab每30分钟添加一个条目来执行一个脚本,在一小时和一小时后30分钟或者接近的时间.我有以下内容,但它似乎没有在0上运行.

*/30 * * * *
Run Code Online (Sandbox Code Playgroud)

我需要使用什么字符串?

cron正在OSX上运行.

vla*_*adr 467

做:

0,30 * * * * your_command
Run Code Online (Sandbox Code Playgroud)

  • 这个`0/30 * * * * your_command`怎么样? (2认同)

aeq*_*lsb 86

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等)

例子#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等)

注意:包括作者在内的各种用户对此帖进行了一些改进


Edd*_*die 72

试试这个:

0,30 * * * * your command goes here
Run Code Online (Sandbox Code Playgroud)

根据官方Mac OS X crontab(5)联机帮助页,/支持语法.因此,要弄清楚它为什么不适合你,你需要查看cron的日志.在这些日志中,您应该找到明确的失败消息.

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

  • 没有额外的努力,跟进?:) (9认同)
  • @Adam Hawes:过去我也成功使用过*/xx,但是在Linux和其他UNIX上.我没有亲自尝试过Mac OSX.最初的问题没有说明哪个操作系统.一些较旧的UNIX不支持*/xx (2认同)

PCh*_*ese 9

如果您的cron作业仅在Mac OS X上运行,则可能需要使用launchd.

计划定时作业(官方Apple文档):

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

您可以通过简单的Web搜索找到其他信息(例如launchd Wikipedia页面).


Moh*_*asi 9

您可以同时使用 ' , '除以 ' / ' 符号。
但是,“ / ”更好。
假设“每 5 分钟”的情况。如果使用“ , ”,则必须按如下方式编写 cron 作业:

0,5,10,15,20,25,30,35,....    *      *     *   * your_command
Run Code Online (Sandbox Code Playgroud)

这意味着在所有定义的分钟内每小时运行your_command:0,5,10,...

但是,如果您使用“/”,您可以编写以下简单而简短的工作:

*/5  *  *  *  *  your_command
Run Code Online (Sandbox Code Playgroud)

这意味着在可被 5 整除的分钟内运行 your_command 或更简单的单词“0,5,10,...”

因此,可整除符号“/”始终是最佳选择;


All*_*lyn 5

你提到你正在使用OS X-我过去使用过cronnix.它并不像自己编辑那样令人讨厌,但它帮助我了解了这些列的内容.只是一个想法.