Linux Crontab时间格式详解
Crontab是Linux系统中用于设置周期性任务的工具,其时间格式由5个核心时间字段和1个命令字段组成,遵循严格的规则定义任务执行时间。
Crontab的时间格式为:* * * * * command(用户级任务),其中5个时间字段从左到右依次表示:
/usr/bin/backup.sh)。Crontab通过特殊字符实现灵活的时间配置,常见字符及作用如下:
*(通配符):匹配字段的所有可能值。例如* * * * *表示“每分钟执行一次”;0 * * * *表示“每小时的第0分钟执行”。,(枚举符):分隔多个离散值。例如1,15,30,45 * * * *表示“每小时的第1、15、30、45分钟执行”;1,3,5 * * * *表示“每周的周一、周三、周五执行”。-(范围符):指定连续值的范围。例如8-17 * * * *表示“每天的8点到17点每小时执行”;1-5 * * * *表示“每周的周一到周五执行”。/(步长符):指定时间间隔。例如*/5 * * * *表示“每5分钟执行一次”(等价于0,5,10,...,55);*/2 * * * *表示“每2分钟执行一次”。除基础时间字段外,Crontab支持以下特殊字符串简化配置(位于时间字段之前):
@reboot:系统启动时执行一次;@yearly/@annually:每年1月1日执行一次;@monthly:每月1日执行一次;@weekly:每周日执行一次;@daily/@midnight:每天00:00执行一次;@hourly:每小时0分钟执行一次。以下是常见场景的Crontab时间配置示例:
* * * * * /usr/bin/command;15 * * * * /usr/bin/command;0 2 * * * /usr/bin/command;30 9 * * 1-5 /usr/bin/command;0 10 1,15 * * /usr/bin/command;*/30 * * * * /usr/bin/command;0 0 1 1 * /usr/bin/command。*时,任务会在两者条件均满足时执行(逻辑AND)。例如0 0 1 * 1表示“每月1号且为星期一的0点执行”。Jan代表1月,Mon代表星期一),但需注意大小写不敏感。which command获取),或在脚本中设置环境变量。