📋 Cron 时间格式
分钟 (0-59)
每小时的第几分钟执行
小时 (0-23)
每天的第几小时执行
日期 (1-31)
每月的第几天执行
月份 (1-12)
每年的第几月执行
星期 (0-7)
每周的第几天执行
(0和7都表示周日)
🎯 特殊字符说明
- * 表示任意值,匹配所有可能的值
- , 表示列表,如 1,3,5 表示1点、3点、5点
- - 表示范围,如 1-5 表示1到5
- / 表示间隔,如 */5 表示每5个单位
- ? 用于日期和星期字段,表示不指定值
⏰ 最常用的定时任务
🔄 每分钟执行
🕐 每小时执行
🌅 每天早上8点执行
🌙 每天深夜执行
📅 每周一执行
📆 每月1号执行
⚡ 每5分钟执行
🔄 每30分钟执行
🚀 高级定时配置
💼 工作日每小时执行
🎯 特定时间点执行
📈 工作时间内每15分钟
🌸 季度任务
🎉 年度任务
⏰ 复杂时间组合
🔧 带输出重定向
🌐 环境变量设置
💡 实际应用场景
📊 数据库备份
🧹 日志清理
🔄 Git 自动同步
📧 系统报告邮件
🌡️ 系统监控
🔒 SSL证书检查
📱 API健康检查
🔄 Docker容器重启
💎 专家技巧和最佳实践
📝 Cron管理命令
crontab -l # 查看当前crontab
crontab -r # 删除当前crontab
👤 用户级别管理
sudo crontab -u username -l # 查看指定用户的crontab
📊 日志记录最佳实践
🔧 环境变量设置
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0 2 * * * /path/to/script.sh
⚠️ 防止任务重叠
🔍 调试cron任务
systemctl status cron
# 查看cron日志
tail -f /var/log/cron
📊 特殊时间表达式
@yearly /path/to/yearly.sh # 每年执行
@monthly /path/to/monthly.sh # 每月执行
@weekly /path/to/weekly.sh # 每周执行
@daily /path/to/daily.sh # 每天执行
@hourly /path/to/hourly.sh # 每小时执行
⚡ 性能优化建议
5 2 * * * /path/to/heavy-task.sh
# 分散执行时间避免同时运行多个任务
7 3 * * * /path/to/task1.sh
13 3 * * * /path/to/task2.sh