【问题标题】:Running a cron job at 2:30 AM everyday每天凌晨 2:30 运行 cron 作业
【发布时间】:2013-01-20 12:58:39
【问题描述】:

如何配置一个 cron 作业在每晚 2:30 运行?我知道如何让它在 2 点运行,但不是 2:30。

【问题讨论】:

  • 当心:在许多从标准时间切换到白天时间的司法管辖区,02:00 和 03:00 之间的当地时间小时不存在切换日,并在“回退”日发生两次。奇怪但真实。如果您的机器的操作系统配置为其中一个司法管辖区(例如美国大部分地区)的本地时区,您的作业将不会在春季前一天运行,并将在后退日运行两次。使用 UTC,或者避免奇怪的时间。

标签: cron crontab


【解决方案1】:

除了上述所有出色的答案之外,请查看https://crontab.guru/ - 一个有用的在线资源,用于检查您的 crontab 语法。

你得到的是你所指定内容的人类可读表示。

请看下面的例子:

【讨论】:

    【解决方案2】:

    30 2 * * * wget https://www.yoursite.com/your_function_name

    第一部分用于设置 cron 作业,下一部分用于调用您的函数。

    【讨论】:

      【解决方案3】:

      如其他答案所示,使用的语法是:

        30 2 * * * /your/command
      # ^  ^
      # |   hour
      # minute
      

      遵循 crontab 标准格式:

       +---------------- minute (0 - 59)
       |  +------------- hour (0 - 23)
       |  |  +---------- day of month (1 - 31)
       |  |  |  +------- month (1 - 12)
       |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
       |  |  |  |  |
       *  *  *  *  *  command to be executed
      

      使用crontab.guru 检查 crontab 表达式也很有用。

      使用crontab -e 将表达式添加到crontab。完成后,保存并退出(如果您使用的是vi,输入:x 即可)。使用此工具的好处是,如果您编写无效命令,您可能会在表单上收到消息提示:

      $ crontab -e
      crontab: installing new crontab
      "/tmp/crontab.tNt1NL/crontab":7: bad minute
      errors in crontab file, can't install.
      Do you want to retry the same edit? (y/n) 
      

      如果您对 crontab 无法运行还有其他问题,可以检查 Debugging crontabWhy is crontab not executing my PHP script?

      【讨论】:

      • crontab.guru 是一个非常有用的资源
      【解决方案4】:
      1. 编辑:

        crontab -e
        
      2. 添加这个命令行:

        30 2 * * * /your/command
        
        • Crontab 格式:

          MIN HOUR DOM MON DOW CMD

        • 格式含义和允许值:
        • MIN Minute field 0 to 59
        • HOUR Hour field 0 to 23
        • DOM Day of Month 1-31
        • MON Month field 1-12
        • DOW Day Of Week 0-6
        • CMD Command Any command to be executed.
      3. 使用最新数据重新启动 cron:

        service crond restart
        

      【讨论】:

      • 对 ubuntu 使用“服务 cron 重启”
      【解决方案5】:

      编写 cron 的一种简单方法是使用在线 cron generator 它将为您生成该行。需要注意的一点是,如果您希望每天(不仅仅是工作日)运行它,您需要突出显示所有的日子。

      【讨论】:

        【解决方案6】:
        crontab -e
        

        添加:

        30 2 * * * /your/command
        

        【讨论】:

          猜你喜欢
          • 2011-11-11
          • 2014-08-14
          • 2021-04-15
          • 1970-01-01
          • 2015-12-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多