您的位置:

Crontab时间格式详解

一、每分钟的Crontab时间格式

在Crontab中,每个任务都可以配置到每分钟执行,为了达到这一目的,需要设置* * * * * 这样的时间格式。

其中,* 表示匹配任何值,所以 * * * * * 表示每隔一分钟执行一次。

* * * * * command

二、Crontab时间配置

在Crontab中,可以按照以下格式来配置时间:

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

例如,下面的配置表示每天的凌晨3点执行:

0 3 * * * command

三、Crontab用法时间配置

Crontab支持通配符,来更好地指定一些时间,具体使用如下:

  • 星号(*):表示匹配任意值。

  • 逗号(,):表示分隔符,可以同时指定多个值。

  • 连字符(-):表示范围,例如1-5表示1到5的范围。

  • 除号(/):表示步长,例如*/5表示每隔5个时间单位执行一次。

例如,下面的配置表示每隔10分钟执行一次:

*/10 * * * * command

四、Crontab时间设置

在Crontab中,还可以使用@符号来指定一些特殊的时间。

  • @yearly:表示每年执行一次,相当于0 0 1 1 *。

  • @monthly:表示每月执行一次,相当于0 0 1 * *。

  • @weekly:表示每周执行一次,相当于0 0 * * 0。

  • @daily:表示每天执行一次,相当于0 0 * * *。

  • @hourly:表示每小时执行一次,相当于0 * * * *。

例如,下面的配置表示每天的凌晨3点执行:

0 3 * * * command

可以改写为:

@daily command

五、Crontab命令格式

Crontab指定的命令格式与普通的Linux命令相同,可以指定路径、参数等。

例如,下面的配置表示每分钟执行一次

* * * * * /usr/bin/command arg1 arg2

六、Crontab六个域排列方式

Crontab使用六个域来指定时间,如下所示:

minute hour day month week command

其中,minute、hour、day、month、week分别表示分钟、小时、日期、月份、星期几,command表示需要执行的命令。

七、Crontab用法详解

Crontab的用法非常灵活,可以根据实际需求进行配置,以下是一些使用示例:

  • 每个月的第一天执行一次命令:

  •     0 0 1 * * command
        
  • 每周的周一到周五的早上9点执行命令:

  •     0 9 * * 1-5 command
        
  • 每三天执行一次命令:

  •     0 0 */3 * * command
        
  • 每周的周六和周日执行命令:

  •     0 0 * * 6,0 command
        

八、Crontab时间格式 每两天运行一次

为了实现每两天运行一次,需要使用到除号(/):

0 0 */2 * * command

九、Crontab用法

要使用Crontab,只需要在终端中输入crontab -e,即可编辑当前用户的Crontab。

例如,下面的命令将打开当前用户的Crontab文件:

crontab -e

在编辑器中,可以添加如下的Crontab时间格式:

* * * * * command

保存并退出编辑器,即可保存修改。