linux crontab的核心是五字段时间表达式,从左到右依次为分钟(0–59)、小时(0–23)、日期(1–31)、月份(1–12或jan–dec)、星期(0–7,0和7均代表周日),配合、,、-、/n等符号实现灵活调度。

Linux crontab 的核心是五字段时间表达式,每个字段控制一个时间维度,组合起来就能精准调度任务。写错一个符号或范围,任务就可能不执行或乱跑。
时间字段含义与取值范围
从左到右依次是:分钟、小时、日期、月份、星期。记住这个顺序很关键:
- 分钟:0–59(比如 15 表示每小时第15分钟)
- 小时:0–23(9-17 表示上午9点到下午5点)
- 日期:1–31(1,15 表示每月1号和15号)
- 月份:1–12 或 jan–dec(*/3 表示每3个月,即1月、4月、7月、10月)
- 星期:0–7(0 和 7 都代表周日),或 sun–sat(1-5 表示周一到周五)
常用特殊符号与组合用法
光靠数字不够灵活,这些符号才是 crontab 真正好用的地方:
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- *:通配,表示“任意有效值”。例如 * * * * * 是每分钟执行一次
- ,:枚举多个离散值。例如 0,30 9,14 * * * 表示每天9:00、9:30、14:00、14:30各执行一次
- -:定义连续区间。例如 0 8-18 * * 1-5 表示工作日早8点到晚6点整点执行
- */n:步长,表示“每隔 n 个单位”。例如 */10 * * * * 是每10分钟执行一次(0、10、20…分)
用户级 vs 系统级任务配置
两种方式写法不同,权限和路径也不同,混用容易出错:
-
用户级任务:用 crontab -e 编辑,保存在 /var/spool/cron/用户名 下,格式是五字段 + 命令,不写执行用户。例如:
0 2 * * * /home/user/backup.sh -
系统级任务:直接编辑 /etc/crontab,格式多一列——第六列必须指定运行用户。例如:
0 2 * * * root /usr/local/bin/cleanup.sh
常见实战配置示例
照着改参数就能直接用,注意环境路径和权限:
- 每天凌晨3:15执行备份:15 3 * * * /opt/scripts/backup.sh
- 工作日每两小时执行一次监控脚本:0 */2 * * 1-5 /usr/local/bin/check-service.sh
- 每月1号和15号早上6点重启服务:0 6 1,15 * * systemctl restart nginx
- 每周日凌晨2点清理临时文件:0 2 * * 0 find /tmp -type f -mtime +7 -delete










