Cron 表达式
*
*
*
*
*
每分钟执行一次
手动输入
常用:
每天零点
每5分钟
每周一
每月1号
早晚8:30
工作日每小时
快速选择时间
选择日期时间,自动生成Cron表达式
未来执行时间
输入Cron表达式后,将显示未来执行时间
Linux Crontab 配置指南
前置条件
Ubuntu / Debian
# 安装cron(通常已预装)
sudo apt update
sudo apt install cron
# 启动cron服务
sudo systemctl start cron
sudo systemctl enable cron
# 检查状态
sudo systemctl status cron
CentOS / RHEL
# 安装cronie
sudo yum install cronie
# 启动crond服务
sudo systemctl start crond
sudo systemctl enable crond
# 检查状态
sudo systemctl status crond
基本操作
# 编辑当前用户的crontab
crontab -e
# 查看当前用户的crontab
crontab -l
# 删除当前用户的所有定时任务
crontab -r
# 以root身份编辑其他用户的crontab
sudo crontab -u username -e
表达式格式
| 字段 | 说明 | 取值范围 | 特殊字符 |
|---|---|---|---|
* | 分钟 | 0-59 | , - * / |
* | 小时 | 0-23 | , - * / |
* | 日期 | 1-31 | , - * ? / |
* | 月份 | 1-12 | , - * / |
* | 星期 | 0-6 (0=周日) | , - * ? / |
特殊字符
| 字符 | 说明 | 示例 |
|---|---|---|
* | 任意值 | * * * * * 每分钟 |
, | 列举多个值 | 0 8,12,18 * * * 8点、12点、18点 |
- | 范围 | 0 9-17 * * * 9点到17点每小时 |
/ | 步长 | */5 * * * * 每5分钟 |
? | 不指定(日期/星期) | 0 0 * * ? 每天零点 |
常用示例
| 表达式 | 说明 |
|---|---|
* * * * * | 每分钟执行 |
*/5 * * * * | 每5分钟执行 |
0 * * * * | 每小时整点执行 |
0 0 * * * | 每天零点执行 |
0 8 * * * | 每天早上8点执行 |
0 0 * * 1 | 每周一零点执行 |
0 0 1 * * | 每月1号零点执行 |
0 9-17 * * 1-5 | 工作日9-17点每小时执行 |
0 0 1 1 * | 每年1月1日零点执行 |
注意事项
- 星期字段: 0和7都表示周日
- 日期和星期同时指定时,两者取并集(任一满足即执行)
- 环境变量有限,建议脚本中使用绝对路径
- 确保脚本有执行权限:
chmod +x script.sh - 查看执行日志:
grep CRON /var/log/syslog(Ubuntu) 或/var/log/cron(CentOS) - 输出重定向避免邮件堆积:
0 0 * * * /path/script.sh >/dev/null 2>&1
使用次数:150