在 Linux 系统中,crond 服务通过 crontab 文件来设置任务的执行频率。以下是详细的设置方法和语法说明:
* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └── 星期几 (0-6, 0=周日)
│ │ │ └──── 月份 (1-12)
│ │ └────── 日 (1-31)
│ └──────── 小时 (0-23)
└────────── 分钟 (0-59)
| 示例 | 说明 |
|---|---|
* * * * * |
每分钟执行一次 |
*/5 * * * * |
每5分钟执行一次 |
0 * * * * |
每小时的第0分钟执行(每小时一次) |
30 3 * * * |
每天凌晨3:30执行 |
0 4 * * 1 |
每周一凌晨4:00执行 |
0 0 1 * * |
每月1日午夜执行 |
@reboot |
系统启动时执行(非标准cron语法,需特定crond支持) |
*:匹配所有值(如 * 在小时字段表示每小时)。,:分隔多个时间点(如 0,30 * * * * 表示每小时的第0和第30分钟)。-:定义范围(如 10-15 * * * * 表示每小时的10到15分钟)。/:定义间隔(如 */10 * * * * 表示每10分钟)。bash
crontab -ebash
crontab -lbash
crontab -r系统管理员可以通过以下路径管理任务:
- /etc/crontab:需指定用户(如 root)。
- /etc/cron.d/:存放分片配置文件。
- /etc/cron.hourly/, /etc/cron.daily/ 等:按周期执行的脚本目录。
示例(/etc/crontab 格式):
* * * * * username command_to_execute
bash
tail -f /var/log/cron # CentOS/RHEL
tail -f /var/log/syslog | grep cron # Ubuntu/Debiancrontab -u username -e)。通过以上方法,你可以灵活配置任务的执行频率。如果有特殊需求(如随机延迟避免并发高峰),可以在命令中结合 sleep 实现,例如:
*/10 * * * * sleep $((RANDOM \% 60)) && /path/to/script.sh