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 -ecrontab -lecho "Test" >> /tmp/log 确认任务是否触发。如果有特殊需求(如秒级任务),需改用其他工具(如systemd timer或while+sleep循环)。