Crontab(定时任务)的时间格式由5个字段组成,分别表示分钟、小时、日期、月份和星期。以下是详细说明和示例:
* * * * * command_to_execute
字段 | 取值范围 | 说明 |
---|---|---|
分钟 | 0-59 | 每小时的第几分钟执行 |
小时 | 0-23 | 每天的第几小时执行(24小时制) |
日期 | 1-31 | 每月的第几天执行 |
月份 | 1-12 或 JAN-DEC | 每年的第几月执行 |
星期 | 0-7 或 SUN-SAT | 每周的第几天执行(0和7均代表周日) |
*
:任意值(每分/每时/每天等)
* * * * *
→ 每分钟执行一次。,
:分隔多个值
0,15,30 * * * *
→ 每小时的0分、15分、30分各执行一次。-
:范围
0 9-17 * * *
→ 每天9点到17点整点执行。/
:间隔频率
*/10 * * * *
→ 每10分钟执行一次。L
、W
等(部分系统支持复杂语法,如Quartz)。
示例 | 说明 |
---|---|
0 * * * * |
每小时的第0分钟(整点)执行。 |
30 3 * * * |
每天凌晨3:30执行。 |
0 20 * * 1-5 |
每周一至周五晚上8点执行。 |
*/5 * * * * |
每5分钟执行一次。 |
0 0 1 * * |
每月1日午夜执行。 |
@reboot |
系统启动时执行(非时间格式,但常用) |
星期与日期的冲突:
日期
和星期
,任务会在两者任一条件满足时触发(例如 * * 1 * 1
会在每月1日或每周一执行)。环境变量问题:
PATH
变量显式配置。日志与调试:
grep CRON /var/log/syslog
(Linux)或检查邮件通知。用户级Crontab:
crontab -e
crontab -l
echo "Test" >> /tmp/log
确认任务是否触发。如果有特殊需求(如秒级任务),需改用其他工具(如systemd timer
或while+sleep
循环)。