1. crontab 定时任务
用来 定期执行命令 或 指定程序 的一种服务或软件
Linux 下的任务调度分为两类:系统任务调度 和 用户任务调度 。Linux 系统任务是由 cron (crond) 这个系统服务来控制的,这个系统服务是默认启动的。用户自己设置的计划任务则使用 crontab 命令
2. crontab文件含义
前 5 段设置时间段,第 6 段是要执行的命令段
- * 代表所有的 取值范围 内的数字,如月份字段为 * ,则表示 1 到 12 个月;
- / 代表每一定 时间间隔 ,如分钟字段为 */10,表示每 10 分钟执行 1 次。
- - 代表从某个 区间范围 ,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中 0-23/2 表示在 0~23 点范围内每 2 个小时执行一次。
- , 不连续的数值 分散 ,如 1,2,3,4,7,9。
3. 常用命令
crontab [-u user] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
- 设定用户服务
crontab -u user
- 打开和编辑命令
crontab -e
- 查看命令
crontab -l
- 删除文件
crontab -r
- 查看配置文件
cat /etc/crontab
- 查看任务是否执行
grep "文件名称" /var/log/cron
4. 常用实例
- 每分钟执行一次
* * * * * command
- 每小时的第3和第15分钟执行
3,15 * * * * command
- 每天上午8-11点的第3和15分钟执行
3,15 8-11 * * * command
- 每隔2天的上午8-11点的第3和15分钟执行
3,15 8-11 */2 * * command
- 每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * 1 * command
- 每晚的21:30执行
30 21 * * * command
- 每月1、10、22日的4 : 45执行
45 4 * 1,10,22 * command
- 每周六、周日的1 : 10执行
10 1 * * 6,0 command
- 每天18 : 00至23 : 00之间每隔30分钟执行
*/30 18-23 * * * command
- 晚上11点到早上7点之间,每隔一小时执行
* 23-7/1 * * * command
- 每月的4号与每周一到周三的11点
* 11 4 * 1-3 command
- 每小时执行一次
0 */1 * * *
- 每隔一小时每一分钟都执行一次
* */1 * * *
5. 使用场景
- 用户数据备份
- 定时邮件提醒
- 抢购脚本