1、命令
- crontab [参数]
需要开启crontab服务管理:systemctl restart crond
2、参数
- -e:编辑crontab定时任务
- -l:查询crontab任务
- -r:删除当前用户所有的crontab任务
3、vim编辑内容说明
3.1、执行的任务
项目 | 含义 | 范围 |
---|
第一个 “ * ” | 一小时当中的第几分钟 | 0~59 |
第二个 “ * ” | 一天当中的第几个小时 | 0~23 |
第三个 “ * ” | 一个月当中的第几天 | 1~31 |
第四个 “ * ” | 一年当中的第几个月 | 1~12 |
第五个 “ * ” | 一周当中的星期几 | 0~7(0和7代表星期日) |
特殊符号 | 含义 | 举例 |
---|
* | 代表任意时间 | 第一个“ * ”代表一小时中每分钟都执行一次的意思 |
, | 代表不连续的时间 | “0 8,12,16 * * * ”,代表在每天的8点0分,12点0分,16点0分都执行一次命令 |
- | 代表连续的时间范围 | “0 5 * * 1-6”,代表在周一到周六凌晨5点0分执行命令 |
*/n | 代表每隔多久执行一次 | “*/10 * * * * “,代表每隔10分钟执行一遍命令 |
3.3、特定时间执行命令
时间 | 含有 |
---|
45 22 * * * | 每天22点45分执行命令 |
0 17 * * 1 | 每周1的17点0分执行命令 |
0 5 1,15 * * | 每月1号和15号的凌晨5点0分执行命令 |
40 4 * * 1-5 | 每周一到周五的凌晨4点40分执行命令 |
*/10 4 * * * | 每天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15 * 1 | 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号不要同时出现,因为他们定义的都是天,容易混乱。 |
4、案例
[root@mycentos7 ~]# systemctl restart crond
[root@mycentos7 ~]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2022-08-24 19:06:29 CST; 2min 38s ago
Main PID: 1228 (crond)
Tasks: 1
CGroup: /system.slice/crond.service
└─1228 /usr/sbin/crond -n
8月 24 19:06:29 mycentos7 systemd[1]: Started Command Scheduler.
8月 24 19:06:29 mycentos7 crond[1228]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 62% if used.)
8月 24 19:06:31 mycentos7 crond[1228]: (CRON) INFO (running with inotify support)
[root@mycentos7 ~]# crontab -l
no crontab for root
[root@mycentos7 ~]# crontab -e
*/1 * * * * echo "hello, world" >> /root/hello
[root@mycentos7 ~]# tail -f hello
hello, world
hello, world
[root@mycentos7 ~]# crontab -l
*/1 * * * * echo "hello, world" >> /root/hello
[root@mycentos7 ~]# crontab -r
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36