Crontab 定时任务语法

发布于:2026-06-11 #crontab#cron#linux 共 479 字 约 2 分钟

Crontab 是 Linux/Unix 标准的定时任务调度器,用 6 个字段 定义命令何时执行。

语法结构

plaintext
UTF-8|1 Line|
分  时  日  月  星期  命令

字段说明

字段范围说明
分钟0–59每小时的第几分钟执行
小时0–23每天的第几小时执行
日期1–31每月的第几天
月份1–12每年的第几月
星期0–7星期几(0 和 7 都表示周日)
命令要执行的命令或脚本

运算符

运算符说明示例
*每个可能的值0 12 * * * 每天中午
,多个值0 3,6 * * * 每天 3
和 6
-范围20 8-12 * * * 每天 8–12 点的第 20 分
/n每隔 n*/5 * * * * 每 5 分钟

常用表达式

每 N 分钟:

Bash
UTF-8|2 Lines|
*/5 * * * * 命令    # 每 5 分钟
*/15 * * * * 命令   # 每 15 分钟

每小时:

Bash
UTF-8|2 Lines|
0 * * * * 命令      # 每小时整点
30 9 * * * 命令     # 每天早上 9:30

每天:

Bash
UTF-8|2 Lines|
0 0 * * * 命令      # 每天零点
30 22 * * * 命令    # 每天晚上 10:30

每周:

Bash
UTF-8|2 Lines|
0 0 * * 0 命令      # 每周日零点
30 6 * * 1 命令     # 每周一早上 6:30

每月:

Bash
UTF-8|2 Lines|
0 0 1 * * 命令      # 每月 1 号零点
30 6 15 * * 命令    # 每月 15 号 6:30

每年:

Bash
UTF-8|2 Lines|
0 0 1 1 * 命令      # 1 月 1 日零点
0 0 25 12 * 命令    # 圣诞节零点

实战示例

Bash
UTF-8|14 Lines|
# 每 5 分钟运行一次
*/5 * * * * /path/to/script.sh

# 每天早上 5:30 备份
30 5 * * * /path/to/backup.sh

# 每月 8 号 7:30 跑报告
30 7 8 * * /path/to/report.sh

# 每月 10 号和 20 号的 3:30
30 3 10,20 * * /path/to/cleanup.sh

# 每天 8–11 点之间每小时的 25 分
25 8-11 * * * /path/to/check.sh

Crontab 管理命令

Bash
UTF-8|4 Lines|
crontab -e      # 编辑当前用户的定时任务
crontab -l      # 查看当前用户的定时任务
crontab -r      # 删除当前用户的定时任务
tail -f /var/log/cron   # 查看 cron 执行日志

注意事项

  1. 使用绝对路径 — cron 运行在最小环境中,不会加载你的 shell 配置
  2. 屏蔽邮件 — 命令末尾加 >/dev/null 2>&1 避免每次执行发邮件
  3. 时区 — crontab 使用系统时区
  4. 日志输出 — 将 stdout/stderr 重定向到日志文件方便调试
Bash
UTF-8|2 Lines|
# 带日志、屏蔽邮件的标准写法
0 0 * * * /usr/bin/backup.sh >/dev/null 2>&1