一、一次性任务

Unix/Linux 中,提供了 at 命令,用于指定时间点,就可以在指定的时间点添加多条执行
命令,当指定的时刻到达时,就会触发执行的所有命令。

```
at -l :查看任务
atrm n删除编号n的定时任务
at 时间点 指定的时间点上,添加任务
ctrl+D保存

at:时间点(HH:MM)
时间早于系统时间,默认第二天这个时间执行
时间晚于系统时间,默认今天这个时间执行
```

如果需要深入了解 at,可以man at 查看命令操作手册,太多了,这里就截图一点
在这里插入图片描述
在这里插入图片描述

1、演示案例

在这里插入图片描述
打开两个终端

在这里插入图片描述
追加内容,并且另外个终端检测该txt文件
在这里插入图片描述
查看结果: 任务执行一次后 再继续at -l 会没有任务了
在这里插入图片描述

二、周期性任务

需求:每天凌晨 1 点重启服务器的 tomcat 服务,保证我们的网站正常运行。
分析:这就是一个周期性的定时任务

解决方案:Unix/Linux 中提供了定时任务操作 crontab 实现,通常情况下该组件是系统
的一个内建组件,如果你的系统缺少了这个组件,可以 yum install crontab 安装。

通过crontab的命令,添加,编辑,删除任务

crontab  -l:列出所有的周期性任务

crontab  -e:编辑当前用户的周期性任务

crontab -r:删除所有周期性定时任务

crontab -e 编辑任务时创建了一个任务文件,直接编辑添加任务,任务格式固定格式
在这里插入图片描述
以第一个*符号为例,说明上述的语法

	* :表示每一天的每个小时的每分钟执行一次后面的命令
    10:表示每一天的每个小时的第 10 分钟,执行一次后面的命令
   */5:表示每一天的每个小时中,每间隔 5 分钟,执行一次后面的命令
    5,10,20,30:表示每一天的每个小时中,第 5、10、20、30 分钟时刻执行后面命令
	10-20:表示每一天的每个小时中,第 10 分钟开始直到 20 分钟结束,每分钟执行命令

1、演示案例

需求:我们有一个爬虫程序的检查脚本,需要每分钟执行一次并且记录执行结果。
分析:需要做的是每分钟执行一次,并且记录执行结果

在这里插入图片描述
填写内容: 记得保存
在这里插入图片描述
这一步,两个终端,一个监测我们刚创的文件,另外一个看下没有周期性任务
在这里插入图片描述
crontab -e 进入到周期性任务创建vim编辑
在这里插入图片描述
下一步
在这里插入图片描述
查看另外个终端,发现已经执行了3次,并且是每一分钟
在这里插入图片描述

三、周期性任务练习题

1、每天6:00执行–6点整

0 6 * * * root /home/mvp/osyunwei.sh
分 时 日 月 周

2、每周六凌晨4:00执行

0 4 * * 6 root /home/mvp/osyunwei.sh
分 时 日 月 周(0~6)

3、每周六凌晨4:05执行

5 4 * * 6 root /home/mvp/osyunwei.sh 

4、每周六凌晨4:15执行

15 4 * * 6 root /home/mvp/osyunwei.sh

5、每周六凌晨4:25执行

25 4 * * 6 root /home/mvp/osyunwei.sh

6、每周六凌晨4:35执行

35 4 * * 6 root /home/mvp/osyunwei.sh

7、每周六凌晨5:00执行

0 5 * * 6 root /home/mvp/osyunwei.sh

8、每天8:40执行

40 8 * * * root /home/mvp/osyunwei.sh

9、每天8:30执行

30 8 * * * root /home/mvp/osyunwei.sh

10、每周一到周五的11:41开始,每隔10分钟执行一次 #值得借鉴

41,51 11 * * 1-5   root /home/mvp/osyunwei.sh   # 11:41执行一次,11:51执行一次
或者
*/10 12-23 * * 1-5   root /home/mvp/osyunwei.sh  # 星期1~5,12点到23点,每隔10分钟执行一次

11、在每天的10:31开始,每隔2小时重复一次

31 10-23/2 * * * root   /home/mvp/osyunwei.sh

12、每天15:00执行

0 15 * * *  root /home/mvp/osyunwei.sh

13、每天的10:30开始,每隔2小时重复一次

30 10-23/2 * * * root  /home/mvp/osyunwei.sh

14、每天15:30执行

30 15 * * *  root /home/mvp/osyunwei.sh

15、每天17:50执行

50 17 * * *  root /home/mvp/osyunwei.sh

16、每天8:00执行

0 8 * * *  root  /home/mvp/osyunwei.sh

17、每天18:00执行

0 18 * * *  root  /home/mvp/osyunwei.sh

18、每天8:30执行

30 8 * * *  root  /home/mvp/osyunwei.sh

19、每天20:30

30 20 * * *  root /home/mvp/osyunwei.sh

20、每周一到周五2:00

0 2 * * 1-5 root /home/mvp/osyunwei.sh

21、每周一到周五9:30

30 9 * * 1-5 root /home/mvp/osyunwei.sh

22、每周一到周五8:00,每周一到周五9:00

0 8,9 * * 1-5  root /home/mvp/osyunwei.sh

23、每天23:59

59 23 * * *  root  /home/mvp/osyunwei.sh

24、每周六23:59

59 23 * * 6  root    /home/mvp/osyunwei.sh

25、每天0:30

30 0 * * *  root  /home/mvp/osyunwei.sh

26、每周一到周五9:25到11:35之间、13:00到15:00之间,每隔10分钟运行一次
分区段写值得借鉴

25,35,45,55  9 * * 1-5  root   /home/mvp/osyunwei.sh
5-59/10  10 * * 1-5  root   /home/mvp/osyunwei.sh
5,15,25,35  11 * * 1-5  root   /home/mvp/osyunwei.sh
*/10  13-15 * * 1-5  root   /home/mvp/osyunwei.sh

27、每周一到周五8:30、8:50、9:30、10:00、10:30、11:00、11:30、13:30、14:00、14:30、5:00分别执行一次

30,50 8 * * 1-5  root  /home/mvp/osyunwei.sh
30 9 * * 1-5  root  /home/mvp/osyunwei.sh
*/30 10-11 * * 1-5  root  /home/mvp/osyunwei.sh
30 13 * * 1-5  root  /home/mvp/osyunwei.sh
0,30 14-15 * * 1-5  root  /home/mvp/osyunwei.sh

28、每天23:50执行

50 23 * * *  root  /home/mvp/osyunwei.sh

29、每天10:00、16:00执行

0 10,16 * * *  root /home/mvp/osyunwei.sh

30、每天5:30执行

30 5 * * *  root  /home/mvp/osyunwei.sh

31、每周一到周五9:30执行

30 9 * * 1-5  root  /home/mvp/osyunwei.sh

32、每周一到周五13:00执行

0 13 * * 1-5  root  /home/mvp/osyunwei.sh

33、每天7:51执行

51 7 * * *  root /home/mvp/osyunwei.sh

34、每天7:53、12:40分别执行一次

53 7 * * *  root /home/mvp/osyunwei.sh
 
40 12 * * *  root /home/mvp/osyunwei.sh

35、每天7:55执行

55 7 * * *  root  /home/mvp/osyunwei.sh

36、每天8:10、16:00、20:00分别执行一次

10 8 * * *  root  /home/mvp/osyunwei.sh
 
0 16 * * *  root  /home/mvp/osyunwei.sh
 
0 20 * * *  root  /home/mvp/osyunwei.sh

37、每天7:57、8:00分别执行一次

57 7 * * *  root  /home/mvp/osyunwei.sh
 
0 8 * * *  root  /home/mvp/osyunwei.sh
 
         在26分、29分、33分执行一次:0 26,29,33 * * * ?

         每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?

实例1:每1分钟执行一次command

命令:	 * * * * * command

实例2:每小时的第3和第15分钟执行

命令:3,15 * * * * command

实例3:在上午8点到11点的第3和第15分钟执行

命令:3,15 8-11 * * * command

实例4:每隔两天的上午8点到11点的第3和第15分钟执行

命令:3,15 8-11 */2 * * command

实例5:每个星期一的上午8点到11点的第3和第15分钟执行

命令:3,15 8-11 * * 1 command

实例6:每晚的21:30重启smb

命令:30 21 * * * /etc/init.d/smb restart

实例7:每月1、10、22日的4 : 45重启smb

命令:45 4 1,10,22 * * /etc/init.d/smb restart

实例8:每周六、周日的1 : 10重启smb

命令:10 1 * * 6,0 /etc/init.d/smb restart

实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb

命令:0,30 18-23 * * * /etc/init.d/smb restart

实例10:每星期六的晚上11 : 00 pm重启smb

命令:0 23 * * 6 /etc/init.d/smb restart

实例11:每一小时重启smb

命令:* */1 * * * /etc/init.d/smb restart

实例12:晚上11点到早上7点之间,每隔一小时重启smb

命令:* 23-7/1 * * * /etc/init.d/smb restart

实例13:每月的4号与每周一到周三的11点重启smb

命令:0 11 4 * mon-wed /etc/init.d/smb restart

实例14:一月一号的4点重启smb

命令:0 4 1 jan * /etc/init.d/smb restart

实例15:每小时执行/etc/cron.hourly目录内的脚本

命令:01   *   *   *   *     root run-parts /etc/cron.hourly
Logo

更多推荐