在 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 -e
bash
crontab -l
bash
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/Debian
crontab -u username -e
)。通过以上方法,你可以灵活配置任务的执行频率。如果有特殊需求(如随机延迟避免并发高峰),可以在命令中结合 sleep
实现,例如:
*/10 * * * * sleep $((RANDOM \% 60)) && /path/to/script.sh