首页 文章

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

提问于
浏览
200

我想添加一个 crontab 条目来执行一个脚本每30分钟,在一小时和30分钟后,或关闭 . 我有以下内容,但它似乎没有在0上运行 .

*/30 * * * *

我需要使用什么字符串?

cron正在OSX上运行 .

6 回答

  • 453

    做:

    0,30 * * * * your_command
    
  • 71

    crontab不理解“间隔”,它只理解“时间表”

    有效时间:0-23 - 有效分钟:0-59

    example #1

    30 * * * * your_command

    这意味着“每小时分钟运行 is 30 ”(运行时间:1:30,2:30,3:30等)

    example #2

    */30 * * * * your_command

    这意味着“当每小时的分钟是 evenly divisible by 30 时运行”(运行于:1:30,2:00,2:30,3:00等)

    example #3

    0,30 * * * * your_command

    这意味着“每小时分钟运行 is 0 or 30 ”(运行时间:1:30,2:00,2:30,3:00等)

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

    example #4

    19 * * * * your_command

    这意味着“每小时分钟运行 is 19 ”(运行于:1:19,2:19,3:19等)

    example #5

    */19 * * * * your_command

    这意味着“当每小时的分钟是 evenly divisible by 19 时运行”(将运行于:1:19,1:38,1:57,2:19,2:38,2:57等)

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

  • 5

    试试这个:

    0,30 * * * * your command goes here
    

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

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

  • 70

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

    Scheduling Timed Jobs (official Apple docs)

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

    您可以通过简单的网络搜索找到其他信息(例如launchd Wikipedia page) .

  • 9

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

  • 2

    您可以同时使用' , ' OR divide' / '符号 .
    但是,' / '更好 .
    假设'every 5 minutes'的情况 . 如果使用' , ',则必须按如下方式编写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,...'

    所以,可分的符号'/'总是最好的选择;

相关问题