00:00
啊,在本章的最后呢,我们再来介绍一个比较好玩的命令啊,那就是c tap,它主要是用来做系统定时任务啊,顾名思义,它就是给我们的系统设置了一个定时要去执行的任务。也就是相当于我设置了一个闹钟啊,我可以指定每天的几点几分固定时间点去做一个什么样的操作,执行一条什么样的命令,这样的话我们就可以做很多跟系统管理维护相关的一些任务了啊,比方说我们每天的诶零点定时的去做一些清理工作啊,或者说做一些系统的自检检查工作,或者说我们做一些重要数据的存盘备份工作,哎,那另外还还有的一个比较常用的就是比方说诶,我们一个组里边很多同事都在提交代码,那我们可能都是使用这个get做。代码管理工具的啊,呃,然后呢,我们所有同事都提交代码之后,每一天可能都会用当前给ATE仓库里边的代码去做一个打包,生成我们当前软件的一个版本,然后这个版本呢,诶可能就是固定时间生成,然后接下来固定时间就去执行一些标准的测试流程了,测试完成之后,诶,那我们就打包发布,作为一个稳定版本发布,诶那可能所有的这些我们都可以让它自动化的去进行,那需要设置的就都是定时任务了,你不需要去手动触发每一次,诶都可以就是固定时间,我们把所有的代码做一个打包,所以这个其实在实际应用当中还是非常的。
01:33
应用场景非常广泛的啊呃,那我们来看一下到底怎么样来使用这个c ta c ta这个服务呢?它后台是有一个守护进程的,这个守护进程它不是叫做crow tap,它叫做CD,哎,那所以首先我们得确认一下这个CD到底打开没有啊,我们到控制台这里来啊,首先去看一下。System ctl status。CD,然我们看现在它是打开的一个状态,而且我们知道它是系统启动之后默认就会开启的,哎,那所以这个其实就没什么问题了啊,当然如果说你这里边它是关闭状态的话,哎,那没什么关系,你直接把它art或者restart就可以了。
02:14
有了CD守护进程之后,那接下来就可以使用。C tap,呃,那c ta本身它如果要去使用的话,必须后边跟上一些对应的选项,最常见的选项其实就这三个啊,那就是杠E就是要去编辑一个当前的定时任,杠L就是去查询当前所有的定时任务,杠R的话就是删除当前用户所有的定时任务。那接下来我们可以看一下啊,到底该怎么使用,首先我们先做一个杠L。列列举当前的所有定时任务,发现没有root,用户并没有设置定时任务,那接下来我们就直接杠EE,就是edit嘛,去做一个编辑吧。诶,我们看到这里进来之后啊,看起来就像是一个V界面一样,诶所以本质上来讲,我们就像在操作一个文本文件啊,一个配置文件一样,那这里面写什么东西呢?诶这就需要我们看一下当前对于c tab它的编辑内容的一个指定了。
03:18
我们看到啊,基本的格式就是。星儿,星星,星星,五颗星,然后后边加上要执行的任务,要执行的任务当然就是一句命令了,呃,我们在这个命令行里边怎么执行命令,你后边写一句话就可以了,那前面的五颗星到底是什么意思呢?注意,第一颗心指的就是。一小时当中的第几分钟分钟数?范围,零到59第二颗星指的是一天当中的第几小时小时数。零到23,哎,那第三个星就是一个月当中的第几天啊,第四个星是一年当中的第几个月,第五个星是一周当中的星期几,哎,这个看起来好像跟我们一般的习惯,年月日十分秒这种习惯是反过来的啊,其实这个也很好理解,因为我们可能更关注的就是一天当中的第几小时和第几分钟啊,所以前面两项往往是我们经常要去更改的,后边的话有可能往往就不动啊,你像这个星期星期几,那可能用的更少一点,所以就放在了最后啊,所以这里边我们会看到啊,就是星期几呢,这个比较特殊,就是零到七,它是有八个数。
04:34
零和七代表的都是星期日。那接下来我们如果要去做配置的话,呃,那到底怎么配呢?那当然就是对应的这个星号位置,你去给定一个数字就可以了。比如说我们这里可以看一个例子啊,四十五二十二,然后星星星给一个命令,这表示什么呢?这就是表示每天晚上的22:45要去执行后面的命令啊,因为后面都是星嘛,那这个星其实有具体含义的,我们看它是这里表示的一个特殊符号,就表示。
05:09
啊,就是任何时间什么都行啊,其实我们也知道啊呃,我们再去做这个查找,或者说做一些删除操作的时候,如果一个目录下边加一个星号的话,就表示的是删除RM啊啊我们说如果要直接删的话,那就相当于是删除根目录下边的所有东西啊啊,那这个我们知道就是表示所有,然后如果是逗号的话,那表示是不连续的时间啊,就比方说我们可以认为这就是五个位置啊,你填什么数都行,那除了填一个数,还可以用逗号分割填两个三个数,这个也可以。啊,你像我们这样的一条命令,这表示什么呢?后边都是星,那就表示星期几无所谓,哪个月无所谓,哪一天无所谓,关键的就是。每一天的。八点12:16点整,哎,都要去执行当前的命令,所以这个就很好理解了,然后另外还有一个横杠,横杠表示的就是连续的时间范围啊,那什么意思呢?啊,比如说当前这个零五星星一到六,一到六,这个是最后是星期嘛,这就表示。
06:19
星期一到星期六。然后不管哪个月份,不管哪个天,呃,任意一个月,任意一天啊,然后我们都在早上凌晨的05:00五点整执行这条命令。那最后还有一个芯杠N,这表示的是什么呢?啊,这表示的是隔多长时间就执行一次,那具体的单位当然就是跟当前的这个位置有关了,比方说第一个位置杠十就表示隔十分钟,这就表示每隔十分钟,哎,你看后面都是星,那就表示,呃,哪一天哪个小时都没关系啊,就是每隔十分钟就要执行一次命令。
07:00
这就相当于我们有一个循环执行的命令吧,不停的在做啊,所以这个其实还是非常强大的。那对应的我们可以看一下下面的这些具体事例啊,前面这个我们已经说了,这是每一天的晚上10:45执行命令,那下边017星星一这个表示什么呢?哎,那首先这个这表示的是下午的五点钟吧,17点整要执行命令,那到底是哪一天呢?是每周一的。17:00执行命令好啊,那另外这里又有一个,我们看第三位指的是当前的天数是一和15,那也就指的是每个月的一号15号凌晨五点钟来执行命令。所以我们是从后往前看啊啊,那同样如果说最后变成一到五的话,这个指的就是周一到周五了,工作日,每个工作日,然后不论月份,不论天数,每个周一到周五的凌晨04:40执行这个命令。
08:05
那后面这条命令呢,这就是后面都不管,我们指的就是每一天,每一天的凌晨四点钟开始执行命令,然后每隔十分钟执行一次命令。然后另外下面我们还有这样的一条命令,这指的是每个周一,而且呢,诶,不论哪个月啊,所以是每个月的周一,而且还指定了天数,也就是说每个月的一号和15号,以及每周一的。00:00都会执行命令,诶,但是我们会发现啊,这个命令就有时候我们会发现,因为这个星期几和天数几号,它有可能会出现冲突,所以最好这两个不要同时出现啊,啊那你如果同时出现的话,就这个管理其实是非常混乱的啊,那容易出现问题,所以一般情况这两个只要有一个出现就可以了。
09:01
那接下来我们就来看一下一个具体的案例吧,啊,我们这里具体来操作一下,我们写一个,呃,非常简单啊,比方说我们就是能够看到它变化的,我们就每隔一分钟,然后呢,在某一个文件里边去追加一句话,比方说我们就追加一个hello word啊,直接追加到一个hello文件里边就可以了。那现在每隔一分钟都要做一个这样的操作的话,那怎么写呢?很明显那就是芯,然后杠一后边那不管哪个小时,不管哪一天,不管哪哪个月,也不管星期几,后面是四个星,然后后面就是我们要执行的命令了,命令的话那就eo一个。Hello world。把它两个大于号追加到某一个文件里面去啊,那这个文件我们可以直接就给一个root,然后呃,就叫做hello吧,我们直接把它做一个保存。然后接下来我们可以看一下,现在这里还没有这个没有hello文件啊,其实我们知道没有的话,他自己也会给我们把它创建出来,所以我们可以稍等一下看一下。
10:11
现在还是没有,稍微等一下。那现在我们再看还是没有。好,那接下来我们看,我们因为知道这个肯定是要等到整点的时候才会有hello对吧?那所以我们可以cat一下hello的内容,诶,果然写进去了一句hello word,所以我们就是等到整分钟的时候,整一分钟的时候,零零秒的时候就会写入一句,那如果我们想看它对应的这个变化的话,我们可以直接K-F哈,看一看它后边的变化啊,这个就需要我们耐心的等待一分钟,等到一分钟的时候,我们应该自然就能看到它后边追加了一句话出来,这个就不需要我们做任何操作了,因为有一个定时任务在这里。啊,C给我定义了。好,我们可以稍微的耐心等待一下。
11:01
好好,我们看到,诶,现在已经直接就输出了一句hello word啊,那我们应该想到应该是整分钟数到了这里就直接输出了,所以呃,整体来讲这个还是非常的简单啊,呃,那当然了,如果这个时候我们在crow tab。看一眼当前的列表的话,就会多了我们已经写入的这句话,如果说你想把这一个清除掉的话,哎,那可以直接tap-R,用这种方式把它remove掉,它只会把当前用户root用户的所有的定时任务都清理掉,那清理掉之后,诶,那之后我们这个hello文件当然就不会再去增长了。这就是关于定时任务的使用,在实际工作当中应用非常的广泛,大家可以好好去试一试,测试一下。
我来说两句