00:00
大家好,欢迎大家继续收看上硅谷的云计算课程。我是沈涛老师,这节课我们继续来学习,定时。上节课我们讲了一下定时任务的这些概念,对吧?你们都会写了吗?那好,我要求你们来给我写一个定时任务,你们拿出纸和笔来写那。我说你给我写一个任务,让他可以在。2019年。9月10号。然后凌晨03:10:50执行。2019年3月10号凌晨03:10:50执行。各位,一般我上课的时候,如果我说这个题,我们的学员就开始低头写,各位,你不要写,为啥?你先想想这事能写吗?啊,啥意思啊各位。我们这个时间最小可以表示到分钟。
01:01
最大是不是可以表示到月?那么哪一年?哪一个秒,这个都是无法描述的,最小时间范围是分钟,最大范围是月,所以啊,你不要被这些东西迷惑,我们看看注意事项。各位这几个注意事项大家注意一下。第一。六个选项都不能维护。如果不确定时间,用星号代表任意时间,这个是我们说过对吧,第二个就是我说了。最小有效时间是分钟,最大有效范围是这个月,像某一年。但某一秒都是不能实现的。它最小范围十分钟,最大范围是月看到了。第三个在定义时间时候,这个我们讲过,日期和星期最好不要在一条定时任务里同时出现,这样做最大的问题就是它容易把你搞晕。
02:01
然后呢,它都是以天作为单位,容易把你自己好运,所以你要不然就写星期几执行,要不然就写每个月几号执行,没必要把它写在一坨,OK好。再有这个15,请你使用绝对路径。这个还是非常重要,原因很简单啊,定时任务,它里面定义的环境变量和系统执行的环境变量并不是完全一致。那有些情况下,其实绝大多数情况下,你写相对中介,它是能识别,但是在某些情况下就会报一些莫名其妙的错误,就是不知情,哎,本来放在那儿好好的,但是他就不知情,这就有这种情况。所以各位。我们说。你最好还是写绝对路径这个事儿,别忘这个在定时任务中需要反复强调这个事儿啊,你一定要用绝对路径,OK,好,这是四个注意事项。可以啊,这里啊,其实大家都小心啊,其实我们这些东西在讲的时候都已经提到,我们总结一下。
03:04
然后我们来看看开始使用配置文件来配置这个定时用户,那我们说使用命令来配置的话,它的这个用户执行的身份只能是以当前用户,对吧?而如果用配置文件来进行定时任务配置,它就可以手工来指定这个用户,我就可以认,比如说我管理员,我就可以让其他用户来执行,这样的话我是不是就可以?呃,比如其实说背锅是开玩笑,目的是为了干嘛,比如说我拿普通用户来执行,他的威胁性可能就会低一点,那么有可能一些严重的错误,他就有可能就会限于权限,他没法执行,我可能管理员晕了,那这个时候威胁性会小。所以我们。还是推荐用定时用这个编辑配置文件,再有一个。编辑配置文件这种方法来执行的。它的优点在于好改。哎,而且你可以写非常复杂了,比如说你脚本里边写好直接套进来,然后容易搞改用命令行这个东西,就有时候就晕了,晕菜之后这个就写错了,有这种可能,所以我们还是推荐用配置文件,那哪个配置文件呢?ETC下来qua table,那我们看一下。
04:14
我们看一下ETC下的table这样一个配置文件,那这个配置文件打开之后,你会发现前面是定义它的环境变量,你看我说了,它的派看和我们系统派并不完全一致啊,所以我说在定时任务里,你写的都应该是绝对路径的,OK,下面就是一个例子,看啥。他说这十分钟范围零到59看到小时。这个是星期范围,零到六代表了是范围是零到六,零和七都是Sunday礼拜天,或者可以用Sunday Monday,什么Tuesday'Wednesday这个来表示,这个我记不住,那就肯定还是零到六来表示,OK,然后呢,可以指定用某一个用户,然后来执行程序,诶这是可以了,看看到了,但是啊各位。
05:06
这个脚本在red height6开始,它已经变得明显简化了,Red he5的时候,五之前的明显比它更复杂。我们看看这是red he5的。随便找了个五版本看一下,它里边写的是这样的,看前面都是注释,后面写的是。这样下来。用root用户。然后在每分每个小时的第一个分钟,通过run pass执行ETC下的框架下的hour这样一个脚本,这样一个配置文件。啊,这是一个目录啊,哎,Run part是系统准备的一个脚本,这是系统写好的脚本,这个脚本现在也在还在啊,这个脚本保存在这个这个这个这个哪了。哎,我没写吗?我想呀。
06:00
在前面。应该是在U色B下,Us色B下,Us色B下的这啊这是一个系统写好的脚本,你可以把它当成命令,那我们看一下,我再开个终端。User b下的wrong pass,这是一个脚本,系统写好了上脚本,这个脚本我们不用细看,它唯一的作用,这条脚本的作用就是你后面只要执行的是这个,呃,定时这个执行文件,你后面只要放的是执行文件。呃,只要是执行文件,不论有多少个,比如说有十个定行文执行文件run pass,就会把这些执行文件一个一个挨个的执行一遍,把它会运行一遍,哎,它会通过这种方法来执行,那换句话说来看,这里如果是按照文档来写,如果是这样的,原来太无力写了,那它是不是指的就是用root身份,通过run pass脚本把这个目录下的所有执行文件是不是一个一个执行一遍,然后呢,在每个小时的第一分钟执行。
07:07
这会干嘛啊,它不光有C这个点,Hourly,还有daily weekly monster moly这种目录,我们看一下这个目录我们同样。我们同样一起C下的。C了。点看这里边是不是有这是个目录,你看见了吗。看到了吗?那里边儿是什么?比如说我们看对类里边看执行文件,全部都是执行可执行脚本。如果我们随便打开一个,比如说我们。打开一个这个熟悉的,比如说daily啊,那我们看看这个ILO,这个是不是就是我们的这个locked搜索的数据库,你是可以看到它基本上就是一个,哎,这个还不行,Realize这是行优先级来update啊,它是不是就是一个执行脚本,我可以让他干嘛,比如说进行一个最先级,然后执行up的D建过吧up DB是不是就是更新数据库,那我问你啊。
08:12
我把这个东西写在了daily目录下。那如果我的这个配置文件,配置文件里它是这样写的。那是不是就是我的这个执行文件在这个目录下,那它是不是就是每小时的第一分钟,然后是不是就执行一遍这个事儿就会更新一遍我的lock的数据库。没错吧?哎,这也就是说。我。现在如果我需要写一个通过配置文件来写定时用,那我就有两个方法。哎,不论是新老版本的三托S都可以。那第一种方法,你直接就把你的执行文件写在这些目录当中的任意一个写进去,比如说每周执行,你就把它写在这儿,它系统就会自动每周执行。
09:01
但这是第一种方法,把配置文件直接写进来。第二个呢,就把执行文件直接写进来,第二个呢,就是手工修改这个配置文件,手工来改,哎,也就是说现在这里不是空的吗?我如果愿意要想让他执行,那我就怎么办。我就会写啊,这样写,比如说我就可以干嘛。把你的这个执行配置文件直接写在配置文件让它运行就行,几点几分执行,当然我这块写的是个目录啊,Root下的C,那这个是不是就是每分钟执行一次啊,这个太夸张了啊,当然只是举例啊,把配置文件直接写进来也行,写个单独的目录,然后再把我们的这个配置这个执行文件拷贝到这个目录下,就直接在这个目录当中来写也行,也行。那我再说一遍啊。两个方法都行。第一个方法。把写好的执行文件就你写,就直接写脚本,比如说备份脚本,你要想让他每周执行,你就直接把它拷到这里,它就会自动运行。
10:02
会的,现在的系统依然会。第二种方法就是把你的执行文件直接按照这个格式写,直接写入配置文件,现在配置文件里面不是空的吗?都是注释吗?那你就按照格式来写,我用root身份或者用U色E身份,然后写你的执行文件的绝对路径就行了,他就可以执行。两个方法都行,哎,但是啊,我们学员可能就会问啊,为啥老师。老版本的这个三格S5我能看懂,它里面直接写好了,你看直接写好了,每个每个每小时第一分钟是不是来执行,我们现在新版本的这里面现在没有这句话呀。那你怎么确定我们这个对对下这个阿雷下它就能执行了,各位这个时候是由于这个原因,看系统提示,你可以通过慢四来查看c table的这个四级别帮助,那这里面它就会写了,写什么。他写了在新版本的旧版本当中,它直接就是通过脚本来调用它。
11:02
然后呢,但是呢,它有可能出现冲突,旧版本当中C定时任务调线调用一遍安克,这个是这个我们下节课来讲,它是为了避免什么在系统关机的时候,定时任务被错过,执行之后再执行。哎,它的这个作用是啥?比如说我让他每天早上三点钟执行,结果三点钟我一外杠机了,我没没没没开机,那哎那口罩可以保证什么,你早上八点开机之后,他检测,他发现你漏掉了一个定时物,它会帮你再执行,这是安内口张的作用。那老版本当中啊,它是通过直接通过C来调用这个什么,呃,这个daily位啊,或者微克雷啊,就每天执行,每个小时执行的,但是C会调用一遍艾C它还会检测再调用一遍,那么就有可能会出现冲突,所以我们到了新版本,当我们的新版本中。为了避免这东西产生冲突,为了避免它冲突,只要按渴望它安装这个东西,只要装那么我们这个,可这个配置文件,我们渴望的配置文件当中,现在就不再具体的写这个。
12:13
具体交易过程,换句话说,我们刚刚说的这些目录。依然还是会被调用,在我们当前版本下,依然还会调用。换句话说,你只要把配置文件写进来,它依然会执行。区别。只是。旧版本呢,是通过C这个程序来调用它,而我们当前系统是通过iac c来调用它,但是不论谁调用这几个东西都依然会生效。所以我其实觉得你根本都没必要搞清楚到底是谁来调用他。你只要知道,就是我说的,我如果想要定时任务执行,一个方法就是你直接把它复制进来就行,复制到指定目录下,这个最合理,我建议你们这样做,这样做便于理解,便于更新修改。第二种方法就是直接把定时任务直接写在这个配置文件直接写进去,哎,这块写清楚,你要执行的具具体脚本,当然也可以是目录,目录里边可以放具体脚本都可以。
13:12
那然后你就写你到底什么时候执行,这样做的好处在于你可以自己来控制时间。而放在这里的话,它是系统,在他认为合理的时间他来执行,不一定什么时候执行,但是每天一定会执行一遍,两个方法都行。听懂了啊,我再说呀,这个地方稍微有点乱啊,我再多说一点啥事。在旧版本的3S当中,它直接通过它来调用这个,通过pro这个程序配置文件来调用,对对,但是新版本当中为了怕冲突,所以他把这个通过cloud来调用的这个事儿先取消了,而通过一个叫做I昧C来调用它,但是无论怎么说,你只要把脚本写在这个目录下,它都可以执行,所以我说如果我打算让我的配置文件通过这种这个配置文件的方式,定时任务通过配置文件的方式来执行,我有两个方法,其实是,那如果要是定时任务执行,那就三个方法,一个是不就是通过可推报。
14:16
杠一手工来执行,这种执行的缺点在于它没法指定用户身份,当前用户是不是只能执行当前用户了?第二个办法呢,就是你直接把它拷贝在这个配置文件。当然这个配置文件调用是由系统来决定用哪一个身份来,这个使用默认都是用root,那这是第二个方法,你直接拷进来就行,第三个方法就是直接手工修改这个配置文件。那手工修改配置文件,你就可以手工指定是用哪一个用户来交流,三个方法随便你用哪一个都行。看你自己的习惯,OK,好。换句话说,各位。我依然可以把我的执行脚本放在这里,让它来自动执行,拷进去就行,直接把脚本放进去就行,听明白吗?好了各位,那这节课呢,我们先讲一下定时任务的注意事项。
15:11
这个其实我们前面反复强调了,其次我们讲了一下定时任务的配置文件,这个配置文件red汉五以前的系统和我们red队往后的系统,它出现了点奇异,原来海德五以前的系统当中,直接在里面就调用了这几个目录下的执行脚本。而六当中呢,为了怕它产生冲突。它它两个产生冲突,所以在这个配置文件里不再直接调用这些,对呀,Week这些文件,而是通过any cloud这个程序来调用它,但是不论怎么说。只要把执行脚本写进去,他就会执行。按照他的时间执行,按照他规定的时间来执行,对吧,我们下节课会来看看any的配置,大概看看。然后呢,这个时候我就说了,我们定时任务执行就会有三种方法,那么。
16:02
这个啊,通过配置文件执行是两种,一种呢,就是直接写入这个。目录当中它是可以执行的,另外一种就是手工修改配置文件,遵守这个格式,注意啊,后面要这个里写的时候要加一个用户名,后面就是你执行命令就行了啊,执行命令脚本都行,OK,然后呢,这三种方法呢,就是通过可能table杠一手工执行。投完推宝。杠一手工执行三个方法其实都可以让对手工运行,看你自己习惯用哪一种,OK。好,那。这节课的内容呢,就是这样,我们下节课再见。
我来说两句