00:01
那刚刚呢,我们已经给大家讲了这个前后台切换,那另外呢,我们在前面曾经给大家介绍过一个小的脚本,做了一个循环扫描网段,那今天那个网段扫描那个脚本是怎么写的,我这他好像留着呢,看看有没有。叫什么来着,SC没了啊,那我们自己当时是做了一个循环,比方说我就想扫描十这个网段,从一扫到254,对吧,扫描主机,那这个扫描主机呢,比方说我们定一个网段叫10.0.0,然后用for循环就可以来扫描啊扫描的时候呢,我们从一一直扫到254度,当那扫的时候我们用PIN就可以了哈,PIN拼一次一秒返回结果Dollar net点儿I,这样的话是不是就凑成一个地址,然后去P送到垃圾箱里啊,如果拼通,那我们就是磁主机是up的。
01:21
啊,这个啊,啊,反之那就是大。啊,但实际上呢,我们也可以用咱们之前刚刚学过的函数,这个函数呢,有一个叫ETC啊,叫D的方式,那这个函数里面它有一个提示成功失败的一个界面,看起来比较好看一些,是不是有个action。啊,我把它引起来,如果成功那就算了,失败那是不是打一个红色的失败啊,就是action这加个false是不是就行了啊。
02:16
Action档在哪在后不在这吗?啊这啊到啊,你说这个单词写错了,真挑毛病啊啊这是个提示啊,当然这个这是好事啊,严谨一点啊啊当然我们现在来跑一下这个脚本。哎。失败,但是这个好像全失败了吧,怎么好像全失败,这不对啊,那这个脚本看错在哪啊拼。
03:06
Action PC一旁是少了个一。一是拼一次就行啊,拼一次哎,这看起来是不是比较舒服。是吧,那这不是挺好看吗?时间也不是我们编的,不就用人家的函数嘛,对吧?但你不觉得有点慢吗?是吧?这254个得拼五分钟呢,那等不着等等等不及呀,啊所以呢,我们接下来就给大家说一说如何来并发执行,那如何如果能让多个程序并发执行,你刚才那个PIN p254次,那如果把254个PIN一块都执行并行执行,那就快多了嘛,对吧?那这个要想实现这个P怎么做?
04:00
那我们可以这么来实现并行执行,并行执行的方法有多种,第一种呢,你在每个希望执行并行命令的后面加盖,这后台执行了,一旦放到后台,他就会最终由CPU来调度,到底谁先执行,谁后执行,那就不知不知道了,从而达到了并行执行的效果啊。当然你放到后台执行,你可以放到一个脚本里面,也可以用小括号。把它分开还可以,用这种方法也行,总之不管是怎么样,一定要放到后台。你放到后台CPU来进行调度,到底先执行谁,后执行谁,是由操作系统来决定,从而达到并行执行的效果,那这些都是无非是不同的形式,实际上最终本质上都是利用后台执行来实现的,那比方说大家看这样的一个命令,这个命令它的效果就是并行执行。
05:03
你看我现在。拼这个拼12701拼三次,这个拼二,然后对这个是顺序的啊,你看这有个分号,这个分号就是先拼它,再拼它,这是这两个就不是并行了,是顺序了,但是呢,我这加盖的符号,把它括号括起来,括起来以后是不是就这是一组,这是另一组,也就是说这组和这组之间是平行的关系,但是同一组内部它是顺序执行的关系。听懂了吧,就是说这两个之间是并行执行,呃,那个串行执行,但这两组之间是并行执行的关系,那我们来看看是不是这样,大家看113之间是同时在P的,那你看二四之间并行在拼的,发现了吗?那这不就达到了并行执行的效果吗?啊。
06:00
当然我们发现这个CTRLC停不住了,因为后台执行它已经不接收CTRLC了,对吧?啊,那这时候我们jobs那么看到它确实后台执行的,那当然我们也可以把它关掉,关掉的话呢,Q or p,把所有的P全杀了,这不就行了啊,那这边也执行完了,你看这个五分钟还没到。太慢了。那这个怎么解决这个问题呀。是。啊,这个杀的时候把这边的P也它是因为太多了啊,所以它这个嗯,没有全关闭啊,那么我们在这呢。这个把这个杀了,这个是1010370307307啊,算了啊就可以了,不过也快执行完了,不过终究来讲是比较慢啊,那么怎么就快一点,那我们并行执行,那咋叫并行执行呢?方法就是我们用刚才的方法挂括号,然后为了看起来条理清晰,我把它换个行。
07:22
看懂了吧,这啥意思,这是不是就是这个命令是放在后台的,总共二百五四个,好,就254个,这个全都是后台,那也就意味着254个大家E一块就执行了。理论上是不是一秒就搞搞定了,对不对,是不是这样呢?那来进行一下效果吧。搞定了吗?完事了,完事了,不过呢,有一个缺点,就是后台作业他虽然执行完了,但是他不会主动退出,你发现没有,它没有结束,你得敲个回车,他才说,哎,结束了,这感觉不太好,怎么办呢?再改进,在这个位置我们加一个关键字叫位置。
08:11
这个wait呢,是系统的一个命令啊,这个命令呢,我们可以看一下,它是个内部命令,它里面它的做工作就是等待作业完成返回退出啊,作业后台执行的作业,所以呢,一旦结束他就出了,所以再执行。你看退出了没,退出了看到吗?啊,你看执行的是不是啊,当然他因为并行啊,所以他把这个打打印的时候可能串串起来了,有点错位了啊,有点错位了,好大家看确实好使吧,效率高的很吧啊你看原来200就是五五分钟干的活,人家一秒钟干完了,那并行是不是很有好处,对不对,并行啊。啊,这就是咱们给大家讲的这个并行执行啊,这个尤其你们将边边脚本这个还是很有用的。
09:08
好,我这呢就写了一个例子,最终呢,就实现了这个效果类似的,然后我这个地方没有用那个action好了,那接下来呢,咱们来看一下这个计划任务,那么这个计划任务呢,嗯,是我们工作中用的非常多的一个技术计划任务,计划任务就是定期执行,按照计划来执行,那我们都知道在生产中我们确实。经常性的需要定期执行。最典型的就是备份。啊,或者是监控,那监控,比方说我们每隔五分钟我就要看看啊,这个某个进程是不是活跃,或者某个磁盘空间,或者网络应用,网卡吞吐量等等,我要去,那么这时候就要用到计划性的周期性的任务。
10:02
那咱们这实现这张呢,你先把这个邮件服务装了,因为我们稍后要用到这个邮件服务啊,这个politics这个当然我这是装过的,你们那估计还不一定装啊,这个这是在学这部分啊,我们稍后要用的一个软件包,你需要装一下,装完了以后把它启动一下,我这已经起来了,它的端口是25端口,25端口,然后所以如果你装完了,你把它再启一下啊,说你设为开机启动,这个待会我们要用啊,待会儿要用。啊,我这已经有了,告诉你怎么去设置环境准备啊。好,那计划任务呢,有两个计划任务,一种呢是一次性的计划任务,一个是周期性的计划任务。那么一次性的当然就是我做一次就完了啊,一次性买卖做完就拉倒,这种用的不多,那我们更多的是周期性的计划任务。
11:05
不过两种呢,我们都得了解一下,一次性的计划任务呢,它是由at这个软件来提供的,咱们系统中有一个包叫at,这个包就叫at包,就角at。包聚脚一体。那么这个软件包里面涵盖的文件。那我们看到它有这样的一个程序,就叫at。那这里面呢,它还提供了一个service,这个service对应的就是一个服务,之所以它能一次性的在某未来的某个时间自动执行,所以大家应该能想到它必须有一个程序监控着时间是否到达,如果到达立即启动这个你定义好的替换任务,所以所以就必须要有一个服务在背后持续运行。监控是否触发了这个计划任务的条件?
12:03
那么这个计划任务的监控就是靠这个服务来实现啊,这个服务呢,你必须要确保它是启动的,通常默认都是启动的,不过呢,你需要确保一下。大家看到它是running的,如果你没有running,那这个计划任务是不会执行成功的啊。好,那现在at这个对应的服务呢,已经启动,所以我们可以通过工具来创建一次性的计划任务,工具就叫at,这个at呢,默认它是一个交互视命令,它实际上是一个交互式命令,你只需要后面写上它的时间啊,他的时间在后面跟上时间,那他就可以在标准输入终端输入那个具体你要执行的操作了,那比方说现在是11点,我们希望12点给我打一个任务,比方说12点自动关机。
13:06
下课啊,那怎么做呢?诶回车大家看他这直接提示我们了,说命令将使用冰SH,诶注意它可没有用bash啊,他用的是SH,我们都是SH呢,实际上也是一种事类型,对吧?啊,他用的是SH,所以你写的指令的时候一定要注意,它是必须SH支持的。啊,那接下来我们在12点干嘛呢?关机,那关机的话呢,比方说我们power off啊,啊关机啊,当然关机之前呢,发个广告广告吧,说class is over,哎,发完以后再关机嘛,啊再关机,然后power off。啊,那这时候写完之后注意不要CTRLC退出啊,CTRLD退出CTRLC属于异常退出,现在白写了CTRLDCTRLD完了以后,大家看它这儿就会打一句话说照不一。
14:04
就也就有未来在今天的12,所以我没有写今天的日期啊,没有写日期就是今天啊啊,那么在12点就有的计划任务了,那我怎么知道呢?At-L是可以看的,当然能看到名称,但是看不到它具体内容,要想看内容,CC1呢,就是这个地方的。编号啊,你看这里面就一大堆,其中前面呢是它的变量,我们一个share运行,它是有一些变量,大家看它的pad变量是在这个位置,然后这是我们刚才敲的东西在这。也就是说我们这个脚本运行实际上是有环境的啊,有环境的。啊,当然这个12点我们肯定是不希望能等那么久的,所以我们现在重新再创一个新的,比方说我们11点现在是零九分啊,那我们就11:11吧,11分那我们去执行一个计划任务,看看还有多长时间了。
15:03
马上就到了。啊,那算了,来不及了,那我们就晚一点十一十一点十一分11分干嘛呢,比方说我们就创建一个新文件吧,啊创建一个时间好,我们把这个文件呢创建出来,看看它能不能生成啊。啊,这个这个加号百分号啊T吧。这是不是就是生成一个时间。啊哎,生成,同时我eo一下说a job执行了running,然后CTRLD结束。那现在定义了一个这样的一个计划任务啊,当然我们这个时间现在没到,还有20秒,还有20秒,那我们现在也可以用杠C看这个第二个任务,这是我们自己加的。
16:00
那按理来讲,这个时间到了,是不是就应该触发啊,当然我们这里面写了两个命令,一个是创建新文件,一个是执行A口,对吧,执行A口那应该时间到了。抽了。怎么没提示啊,这个这个命令执行了吗。那先看看这个文件生成没生成吧,啊,看看这个data a有啊,人家真的生成了,但是有点奇怪的是这个怎么没有啊,这个为什么没有呢?哎,这个是标准输出对吧,大家想未来的时间,你能确保你还在机器跟前坐着吗?你不能确保,而且即使坐在机器跟前的使用这个终端的人还是同一个人吗?那可不一定,有可能你关了,别人开了个终端,也叫TTTTS0,那是不是根本就不是?
17:06
啊,而且这个PT0还有一个。就是你现在用的P30和下次再打开P0跟你不是同一个人了也行,所以他不应该在你这个终端上直接打印,打印出来的就有可能产生安全风险,所以那等不打印那不执行,那放哪去了,诶它实际上是给你发邮件了,大家看底下已经有提示了,看这就是为什么我们要装那个po fixx啊,那个po fix是来实现邮件服务的,就这个你不知道那个邮件看不着明白吧,哎,这个实现邮件服务的,所以我们这就看到了,它是有来封邮件啊邮件那我们去搜怎么搜呢?没有没有搜,那这里面就有那二,就是那个作业二,一把这个作业就是邮件的那个编号写上一,你看这是不是就有了。也就是说在系统中计划任务里面的标准输出,实际上也包括错误,它不会给你在屏幕上显示,而是重定向,到了邮件里,听懂了吧,他给你发邮件了啊,这样的话也是合理的,是不是也是合理的啊,当然你看这个邮件实际上也变相的知道的,计划任务真执行了嘛,对吧,就行了,好,这是这样的一个邮件啊,这个执行完了,这个邮件实际上它这已经提醒我们是把放在了哪,放在了这个位置,实际上是放在这个文件里了,大家概是不是有个这样的邮件,那么发送时间之类的都有。
18:40
好,那么通过刚才的这个事例呢,大家应该知道,那既然at命令它是个交互式的,而且一旦执行完,大家发现刚才那个计划任务是不是就没了,就是他执行过以后他就没了,他给删了。哎,那我问大家一个问题,如果我现在重启机器的话,我现在这个12点定义的计划任务还在吗?
19:05
那事实上他是在的,因为你通过at命令创建的计划任务最终实际上是保存在磁盘里了,你看到的东西都是在磁盘里的,在哪呢?在这,V four at,在这。哪个呢,就是这个,那当然我们要确认一下是不是它A000什么回车,看你看里面东西是不是我们刚才写的对不对,那既然放到文件里了,是不是断电重启也丢不了啊没问题啊没问题,不用担心这一点。啊,还有就是我们刚才创建计划任务的时候,是通过这种交互式的方式,那事实上将来我们如果希望通过脚本来创建一个计划任务,那怎么做呀?
20:01
是不是很简单,我们只需要执行一个标准,输入重镜像就可以了。比方说广播。广播啊,这个at job is running,用at。那传过来后面可以跟准确的时间,我也可以跟加一分钟之后。那这样的话,我就不用管现在几点了,一分钟之后自动执行嘛,好。加一。Now加一,就现在的时间加一。哎,可以了,然后看一下at-L,你看它是不是一分钟之后。对吧,闹加一就一分钟之后啊,那一分分钟之后,那我们就等着吧,一分钟之后,那马上到啊,说是一分钟啊,他不一定是正好一分钟啊,因为有可能他中间已经过了多少秒了。
21:12
好,所以看。是不是没到,他说是一分钟时间,不一定是整一分钟啊,就是到下一个分钟的整第一个秒是不是就执行了,对不对,诶有人说了,诶这个东西怎么平文打印啊,因为你不是eo输出,你是什么广广播。广播广播,那就所有终端都发嘛,对不对,所以他能收到啊,你看我这边也能收到。所以这就是啊,这样的一个定义啊,那你看像这个东西是不是写在脚本里就可以做了,因为它是非交互的。那同样我想大家应该明白,我事先是不是也可以写成一个文件,然后利用标准输入重定向,后面跟一个写好的一个文件是不是也可以啊,对不对,你管道都可以这么干,那是不是标准输入重定向不也行吗?你把那个计划任务,那个命令你写在一个文件里面,用它传过去不也行吗?啊,这个我就不执行了啊,都是可以的啊,都是可以的,那这at。
22:19
那艾命令呢,当然,那我们再创建一个新的,那假设我们就来写一个。广播at job2生成一个文件,就叫at test,然后在一分钟之后加一分钟之后啊,自动的去执行at test。好,你看这就有了计划任务了,看到有了吧,那这个计划任务呢,我想看一下,那就是C4,那这里面不就有吗?那现在这个计划任务不想执行了,那么想把它删掉,删掉的话呢,就是B4就删了,这时候呢删了。
23:05
妈妈。对,删一个。很简单,就这样就算了啊。好,这是at,那at呢,嗯,这还可以写,定义这个时间,用这个时间格式。杠T,不过呢,一般来讲咱们都不用写这个时间啊,然后LDD是删除,C是查看,F是同一个文件读,其实我们刚才啊,实际上不用标准输入重定向也行,那就是我们刚才用这种方法,实际上你可以直接写F就可以。他这支持你直接写F这样也可以的,后面跟文件啊,这样的话呢,它也能创建出来这块啊,诶这都是可以的。啊,M呢,是强制发邮件,我们刚才说发邮件是什么时候发呢?就是你在命令执行标准输入标准这个呃,执行过程中有标准输出和错误的时候,他会给这个东西,把这个输出和错误发邮件给你,但如果没有标准输出错误,是不是他就不给你发了。
24:08
我给你发,这时候有个小问题,就是我不知道我的计划书执行没执行。你也没有明确提示,所以我们可以加个M,加个M呢,就是即使你没有标准输出错误,我也强行给你发个空邮件,你看到空邮件一看标题不就知道,哎,计划任务是真的执行了吗?对不对,有一个证明嘛,对不对。那这里面呢,需要注意就是我们将来在工作中写计划任务里的脚本。和我们平时手工写执行的脚本风格是不同的。为什么风格不同啊?我们平时手工执行脚本的时候,因为人在机器跟前,你是不是要观察脚本的执行效果,比方说加什么颜色呀,输出提示啊,漂亮一点呀。但是计划任务需要吗?
25:00
计划任务你做那么多,花里胡哨的根本不起作用,顶多给你发邮件。而发邮件,如果你输出比较多,是不是会造成大量的垃圾邮件?因此,放到计划任务里面的脚本通通不要有标准输出,否则顶多给你发邮件,你也看不着理解了吧。所以写在脚本,写在计划任务里,脚本就把所有的标准数据全取消,平时你交互执行的,你可以有一些输出。所以这个风格是不同的。啊,风格不同两种。啊,这是希望。这个要注意的地方,好,这是这个M,那比如说M呢,我们比方说我们就执行一个啥也没有输出的一个命命令啊,什么命令没有输出,比方建文件它就没有输出嘛,对吧?哎建命令,那所以我就可以这样做啊,就是at-M。啊,我这个11点也是一分钟吧,一分钟之后执行啊,我就执行一个创建了新文件AT2LOG行了,那这时候我们现在命令执行没执行。
26:16
哟。正好赶在点上,那到底执行没执行啊,那就看看邮件吧,哎,第四封第六封信。啊,DD这是第四封信,哎,有空邮件来了,看见没有,就那个空邮件他执行了啊,他执行了啊,你看它这执行了没有,真的执行了啊,当然我们可以看一下A塔,你看这个AR是不是出来了。对吧,就行了,那这样的我给你发个空邮件,你不也就知道他计划是执行了吗?对不对,嗯。啊,这是咱们给大家讲的这个at啊at呢,嗯。
27:04
这个刚才讲过了,写了这个不用了,把它删了。啊,这个时间格式,我刚才写的是小时分,加上这个什么几点几分闹什么什么多长时间啊,你也可以写上年月日。明日也可以,甚至还可以写一些英文单词。那tomorrow什么,这些这些都是英语单词啊,这些都是英语单词啊,这个还有什么下午茶。下午茶是国外他们流行的时间就下午四点啊,这午夜。咱们。Now加什么时间?这个还是比较好用的,多长时间之后自动执行。
28:02
那它的格式可以支持这种格式都可以。好,那么at命令呢?嗯,还有一个黑名单白名单的问题。我们将来可以拿root用户执行计划任务,也可以拿普通用户执行,而我是普通用户,我能不能创建计划任务呢?这实际上它也是可以的啊,比方说我们就定一个一分钟之后。自动执行啊,执行个啥呢?啊执行一个广播。哎,但是普通用户有有执行广播的权限吗?啊,普通用户有执行广播的权限吗?啊。是不是没有啊,你发不出去啊,发不出去,那所以我们就别弄了,那么就这样吧,呃。发个空发个这个消息网叫,当然我们发消息他也不会给你直接平文打印,是不是给你发邮件了对吧?诶然后CTRLD,那这时候呢,我们就创建了一个循方中啊这个时间到,诶马上到了24分到了,到了以后呢,我们看看邮件到没。
29:19
哟,竟然没有收到,他没有收到说明他没执行,诶执行了呀。呀,那说一啥说明邮件发给谁去了去了,你看第七封信来了,而且是谁发的呢,你看。是不是?是发过来了吧,那就是说他发邮件默认是以root身份给你发的啊,这边这个如果有标准输出默认就是以。用户的身份,而邮件发送给啊发送。
30:00
那我发现普通用户是可以创建计划任务的,但是如果我不希望普通用户创建计划任务,那也可以定一个叫黑名单的黑名单,一旦这样定义完,把他加进来,那这时候呢,这个文件里面写了个王的用户,那这时候你再来用王来创建一个计划任务,你看他还能不能执行计划任务了。看见了没有?没权限了吧?啊,这就是黑名单啊。当然我刚才只是加了个王,那么对于别的用户来讲是不是不受影响?对吧,比方说马哥要创新情况认我应该是不受影响的,马哥那我去闹,加一分钟,你看他就不受影响。啊,这是计划任务啊,当然我们这儿有黑名单,实际上还有个白名单,白名单呢,它的文件叫lo。
31:08
不过这个lo文件默认不存在,需要你创建,当然这时候就有个比较容易产生冲突的地方,这个是不是号称白名单吗?那这个是号称黑名单,那你说听谁的呀?那如果打架听谁的?那我们就试试吧,看你们谁猜对了啊。看看谁能猜对。说明啥?说明allow有效吧,对不对,就是黑名单和白名单,如果打架allow优先级高啊优先级高。那事实上它的实现逻辑是这样的,先去查allow文件存在不存在啊,如果存在,看里面有没有这个账户,如果有,好了直接允许,如果这个账户不在这个文件里。
32:12
这个文件存在,但是又不在这个文件里,那不在这个文件里,那就意味着。Allow是允许你不在文件里头就都拒绝了。啊,当然如果这个文件都不存在,那不存在,我就看迭代文件,迭代文件呢,里面有就被拒绝,如果没有那就允许呗。允许。当然还有一种情况就是两个文件都不存在,都不存在呢,也是不能执行的,谁都不能执行,除了root在内。啊,这是它背后的一个逻辑啊。啊,当然这个计划任务at呢用的不多,我们一般更多的会执行那些什么周期性的,所以接下来我们来看周期性的计划任务。周期性的计划任务要略微复杂一些,它和周期性的计划任务相关的服务相关的包就好几个,这个包是个主程序的程序,包括还有个Chrome,还有prony and Chrome。
33:14
这是三个对应的包。这三个利用包都放了和周期性的计划任务相关的不同文件。那这个C包呢,它里面存放的是最主要的和计划任务相关的一些文件。好,那看一下这个这个软件包应该我都装上了默认啊,大家看他带的文件呢,里面其中有一个关键的service。啊,包括这里面它提供了它的服务,这个service很关键,Service服务开机它必须要启动起来,它要不启动,周期性的计划任务将无法自动执行。
34:02
那当然我们要确保这个服务是不是已经启动,我们可以用status来看,大家看它已经启动了,所以这个就可以用了啊,如果这个服务是关着的周期计划任务是做不成的啊,做不成它依赖于这个服务的啊,当然这个服务呢,现在已经启动了,它运行的程序实际上就是这个。这个这个长度叫us RS的prod就是这个。嗯。啊,这是周期性的计划任务,周期性的计划任务那当然就是定期执行,比方说哎,每天咱们做备份是吧,哎每隔一个月我清理一下那些老的日志给他。删了对吧,省得它太占地儿。啊,每隔十分钟检查一下磁盘空间啊,每隔一分钟我检查一下我的服务的状态是否正常,这些全都可以通过计划任务让他自动执行,定期执行。
35:04
那么定期执行我们就要用到一些相关的工具,那这个工具呢,其中比较重要的就是这个Chrome tab。这个命令。这个命令呢,它可以让用户让root或者普通用户创建属于自己的计划任务。啊,这叫自定义计划任务。那事实上咱们的系统中还有一些是系统自带的计划任务。系统自带的替换人物。那么系统自带的计划任务是操系统自身带的,不是我们用户家的,那么有些文件看一下是放在别的包里的,那我们看这个包,那这个包它存放的文件有哪些?好,大家看,它自动生成了这么多的文件,注意这些不是文件,这是文件夹,这个是文件。啊,那这个文件记录的就是你希望操系统自身定期执行哪些服务,你可以用来编辑修改,不过呢,这属于系统操一种自身带的。
36:10
那其中这里面还有一个叫run的东西,这个run pass实际上它是个脚本,这实际上是个脚本啊,这个脚本你可以看一下,你看你你把它打开看看,它实际上是个脚本,看到没有,哎,那这个脚本的功能是干嘛的,实际上大家已经提示我们了,说吗?就是。执行某一个文件夹里的所有程序啊,比方说当然你这个如果你要看的话。也是可以的list。那么这个面脚本的工作就是把某一个文件夹里的所有程序全执行一遍。例如我们就建一个测试的。文件夹。这个文件夹有了,戴上吧。也有啊。
37:01
好吧,那我就用你吧。啊好,那这个文件夹,那假设我们这里面写上几个脚本啊,就写一个吧,呃。一。JOB1叫a.sh job8,好,那现在你看啊,我这就写了几个脚本。那这几个脚本就A和B。那现在我想把他们统一。进行批量执行,只要这个文件夹里的脚本我全给你执行了,那我们可以用刚才说的这个list后面跟上这个脚本所在的路径,叫test。还说列出来了吗?列,那我就执行他看能不能执行呢,下的test诶没效果,没有价值权限是吧。
38:02
把这些脚本的文件的这方加上,加上以后再走成了吗?这个脚本的工作就是能够把某个文件夹里的所有程序全统统给你执行一遍。这样就省得你一个一个执行了一个也不行,它可以起到这个效果,那这个就是靠刚才那个包里面的这个程序来提供的,它有这样的一个功能啊,这样的一个功能。那比较重要的就是这个文件,这个文件是属于咱们计划任务的一个配置文件,它里面可以来定义操一种自身的计划人物。那么其中这里面它是明确规定share用best,但是发现了。发现他用的path只有这么几个。
39:00
那换句话说,你要想在这里面执行命令,千万要注意pass变量的问题,如果你不在这几个文件里,那个程序不在这个文件里,你就要写路径了,否则他找不着这个路径显示见和我们平时用的pad变量根本就不是同一回事,你看我们现在平时的pad变量是不是很多?它是不是很少,所以你放在这里面,将来这要写命令的,那这个命令呢,一定要注意路径问题啊,注意问题。你看S病病,你看我们这里面带的路径就比较多,你看这边有个2872嘛啊,你看这个2872里面有什么程序啊。而这个文件夹不存在。那我们就写一个这样的脚本吧。啊,把刚才那个data下的啊,Test a.SH我给它挪到USR local下的,并不下,那我们都知道在这个路径下,它属于pass变量的其中一个。
40:13
所以我们这时候a.SH是不是可以不用写路径就可以执行的是吧?啊a.SH那能执行吗?能执行,但是在计划任务里面你调不了它,为什么呢?因为它不在那个pass变量,这个pass变量里的路径里。啊,如果你不写路径,他就找不着了,发邮件给谁发,给入的发,那接下来下面的就是定义计划任务的格式了,这个格式其中包括前五个是时间,中间这个是以谁的身份执行。最后这个是你执行和命令啊,那其中前五的格式是表示第一个,大家看它这有描述啊,第一个是表示分钟,第二个表示小时,第三个表示每个月的第几号,第四个表示一月份,第五个表示星期几。
41:12
啊信息,比方说我们比较常用的就是半夜执行,假设我们把a.SH想象成一个备份,那么这个时候。我们这儿把它改一下啊,改一下长得让他像辈份。我们这些这叫。好,然后呢,这个文件名我也把它改一下,叫backup啊,这样的话看起来就更像备份一样,实际上他啥也没干。好,那么现在呢,我们想在半夜两点半啊,夜深人静,没人访问了,系统最闲的时候,当然这个两点半,我们这是这么说啊,将来你是两点半真的忙吗?那不一定,那万一你说你说你说你说打游戏的那种,打游戏可能白天大家都上班没时间,那晚上加班儿加点打游戏可能也挺忙的。
42:18
所以你要观察一下系统什么时候闲,你得监控,不是说一定半夜,况且来你的半夜,万一是个国际上的软件,那有些你这半夜人对国外来讲是大白天的,对吧,也可也许你这两点半人家白天还挺忙的,所以这个我们说的这么说啊,但是你要看具体的业务啊,具体业务好,那么两点半,两点半怎么写呢?大家看第一个不就分钟吗?那我们就写30就好了,三十三十就有两点半,两点写二中间空格隔开一个两个都行,反正你把它隔开就行啊,反正好看一点隔开,然后接着那么我们说一个月几号啊,那我们不约定不约定,因为我们每天两点半都要执行,每天两点半就写星就好了,星就是每天就是每注意这个星啊,你看你放在哪,如果你放在这儿,那就变成啥意思了。
43:11
那这就是每个小时的半啊,当然如果你要再把这个地方也写成星,那那这这这这成了啥来这啊,如果写在这最前面了,那就成了每分钟了,所以这个都是每的意思,但单位不一样,明白吧,哎,那当然我这还是写成两点半,两点半,两点半每天每个月,每个月呢,我就不写了,也是星,就是如果你不确定是啥的时候,你就写星就好了啊。然后接着最后这个是天啊,周周周一到周几啊,那么比方说我们不管他,那例如我就只有上班时间啊,上班时间,上班时间一到五。啊,当然这个it公司上班时间实际上就跟没写一样啊,因为it都是七是吧,996的啊,是007的啊007的。
44:08
啊,所以咱们以后上班,人家面试你说哎,你有多少年工作经验,你说我有三年工作经验,结果你毕业才一年,你说加班都加出来的是吧,加班加出来的三年工作经验,24小时,人家工作八小时,你一天24小时工作。好,那这是刚才那咱们格式就大概知道了啊,那当然你也可以写个区间,比方说我们就正常一到五啊,那如果说光是六到日支持,那就是六逗号七,那这个单位呢,反正都是通用的啊,你无非就写的这个格式是写在哪都是可以的,就看单位不一样啊,然后只有只有周六周日,哎,那我就写这个就可以写,当然我现在没法写啊,要这样写的话,咱们就没法执行了。
45:01
啊,那现在啊一到五吧,一到五那以谁的身份执行啊,以王的身份执行。啊,当然你要写王的身份执行,千万要注意王的有权限啊,那么王要是没有权限执行这个脚本,是不是将来会出错呀,对吧?啊,那接着你要执行什么命令呢?执行我们刚才不是写了个backup吗?那这个backup脚本啊,现在在这边我们不写路径,你看它能执行,但是你放在这能不能不写路径啊,那我们就试试吧,试试吧,现在问题来了,现在这时间肯定是不到两点半的,那我们就改成把它两点半不得了吗?那怎么改成两点半啊,改一下改时间怎么改?这不就对就可以改吗?它的时间隔是什么来着,是月日小时分年秒是吧?啊月日小时分年秒,哎,我直接改个小时行不行,比方说02:29。
46:06
那那这个格式好像不行,这个格式不行,那我们就还是老老实实改吧。月月是八月。在二十九二十八号月日小时,小时是幺。两点。二十九三十秒,2020年的30秒。啊,给他一个半分钟的等待时间。别太近,比方说哎,你写个59。估计他还反应过来呢,你知道吧,你不能太近了啊,那人家反应你刚加上人家还没反应呢,你就到了时间了,是不是就来不及了啊,所以稍微给他一点时间啊。那现在我们是29分30秒,中间还有30秒的时间。
47:00
这样应该就达到要求了啊,两点半,两点半可以,那我们来看。看着啊看着,慢慢再倒。啊,那我们就等着看看能不能到时候执行。那这个执行不执行啊,咱们也可以观察一下计划任务的日志,它有个计划任务的日志,这个是可以观察到的。如果计划任务执行了,在这是能可以看的清清楚楚的,当然如果执行中间出了什么问题,也能看到啊,看着。诶。执行了,看到没执行了,那执行了好像他也没有提示出什么问题是吧?哎没出现什么问题,哎没出现什么问题,那这个东西到底有没有效果呀?啊不知道因为什么呢?我们也这是没有创建对应的这个这个文件嘛,啊所以我们只是打印,打印的话呢,他怎么办呢?那看邮件嘛,看邮件里面有没有标准输出。
48:06
第六封信。接入看出来了吗?是不是命令找不着了,那命令找不着了。所以就是因为pad变量它不是那个原来的pad变量了,那怎么办呢?那你就要改吧,那应该改成啥样啊,那我们这是不是应该把它的时间。把这个东西加上它路径USR local b是吧,Local b啊。家长。啊,改完以后再把这个时间重新恢复一下啊,然后这回呢,咱们用那个广播吧,用广播省的那个啊变成广播,这样的话就能看到效果了。
49:01
好了,那看着到时间看看,差不多还有十来秒。因为把路径写上了,他肯定能找着了。当然,除了写路径,你还有一种方法也可以。怎么做啊,把派变量给它改了不就行了,对不对,把派变量改了好判执行没执行。别抄了呀,啊对,王的身份权限不够对吧,王的权限不够,不过呢,我们看邮件吧,你看这个邮件里面有没有。这还是刚才那个,刚才那个,但是确实执行了,应该就是权限不够啊,权限不够啊,所以这个王的身份导致权限失败了,那那我们就建个文件得了,建文件这样的话能看到效果啊。
50:01
啊,那我们就建个文件吧,这个我就不E了啊,我就backup is finish。然后重定向到。这个文件里去,这不就行了吗?并且呢,我可以把时间也记录下来。把这个时间给它记录下来。他记录下来。甚至我又追加。追加的话,是不是可以都可以往里写,这是法人代号命令是吧,命令。
51:02
好。到你了。好,然后呢,接着我们去把刚才的计划任务再改一改,我们不去两点半了。我把这个时间恢复一下,咱们现在的时间是错的。那我们要把它恢复成硬件时间,硬件时间是对的是不是啊,所以我们可以把它改成有哪个选项来着,哪个是读取硬件时间,恢复软件时间。是。哎,这回咱们来个星星,这是不是就是每分钟都会执行。是吧,每分钟执行好,那这样的话就可以了,那我们来看看他这个时间,哎哟还有十秒正好,那当然我们刚才是把文件放在了tab下。
52:07
那待会时间一到,理论上这个探下就会多一个文件,应该到了吧,有没有?没生成。呃,每分钟执行一次up,看我们这个up用户。写了一个这个东西,那这个命令单独执行一下,看看有什么问题。可以执行,哎,执行了呀。你看第一个那个零六是执行的。是吧?不过他好像是并不是整秒。11:460606秒,所以过了几秒才执行啊,看看他是不是到点能执行。
53:11
你看又到了,不过呢,他可能还得往后错一下,那么稍微延后了点,确实执行了吗?执行了大就能看到。啊,当然,那你可以看一下这个文件是不是王的身份创建的。是吧?这就实现了周期性的计划任务,不过呢,像这个写文件的话呢,我们用的不多,因为这个文件呢,他的这个。修改并不是普通用户有权限改的。这个只有管理员才有权限。啊,有的时候我们希望普通用户也希望创建自己的计划任务,那你显而易见,用这种改文件的方式,他是没权限改的,做不到啊,还有就是我们系统中还有一些系统自带的计划任务啊,这些计划任务呢,是默认放在了这个目录下,大家看这里面有一些。
54:10
D实际上你也可以放在这,大家看这里面有一个0OVERLY,这个0OVER什么意思呢?就是它执行了一个这样的格式,你看这个格式是不是就是零一星星星能猜到啥意思吧,是不是每小时的第一分钟,不是每一分钟。是吧,是每小时的第一分钟,就是每小时执行一次啊执行啥呢?执行这个目录里的所有,你看他用的是run pass嘛,我们刚才讲过run pass是不是只要你放在这个目录里的文件程序,它都会给你在每小时执行一次。那这里面有一个啊。那事实上还有一个什么,这里面还有点儿。Weekly monthly。
55:02
你应该猜到啥有这是不是就是每天执行的计划任务,对吧?啊,那这个就是一个每天执行的计划任务。那包括这个也都是每天执行的计划任务,他都是。自动执行的,还有每周每月的,像这些呢,你可以自己写进去,写进去他就会定期执行。当然这些呢,都是蔡系统自身的计划任务啊。我们一般。不去管它,让它自动执行就好了啊,那比较重要的是我们自己将来要创建计划任务,比方说如果我是普通用户,我希望创建一个属于自己的计划任务,那么我们一般来讲是有一个专门的命令的,叫com ta。Group呢?这个命令它可以来创建属于自己的计划任务。其中杠一是编辑默认当前用户的计划任务。如果你想改别人的计划任务,你可以用杠U指定用户。
56:11
不过呢,你想你是普通用户能指定别人吗?当然不可以了,只有管理员才可以对吧?嗯,啊,如果你就是普通用户,那你就不要指杠U了,你就直接杠一创建自己的这化容就好了啊,那我们现在把这个创建杠一,但是这个杠一呢,你会发现它打开以后实际上是个啥也没有的空白的。那这个格式实际上就是参考我们刚才给大家讲的那个文件的格式,这个文件它的格式就是这个,不过呢,这个格式略微不同啊,什么不同呢?这不要写用户名了。啊,为什么不用写用户名了呢?就是因为你这已经指定是当前这个人创建情况任务了,我是不是执行的时候就是以这个人打开的,所以就不用指了,不用指了,那只写什么呢?就是除了用户名,其他都还是格式都是一样的,明白吧,其他格式一样的啊,比方说我们就来咨询一下。
57:05
进行个啥呢?就是每分钟执行星星,星星每分钟执行,每分钟执行一个啥呢?执行一个我就打一个pass,打一个pass啊,当然我们这个是关心一下pass路径,到底他和我们默认的pass路径一样不一样。对吧,哎,来看一看,当然我们刚才这写的是它生成那个临时文件,这个临时文件呢,实际上它是临时利用了一下这个文件创建完了关了,它也就删了没了,看不见了,你看这个ta下它没这个文件了。啊没了,当然大家也不用担心,因为这个计划任务呢,实际上它是存了,存哪去了呢?诶存到了一个目录里,不过呢,你直接全你直接看不到啊,这个叫Chrome,这个权限你不够进不去,不过呢,你可以换root root可以进去,在哪呢?就在这,你看这是不是有个王的文件啊,这个王的文件里面就存了刚才王账号创建的警方任务,你看这里面是不是有啊,当然一分钟应该到了吧,啊那到了,那他执行的话,因为这又是标准输出,我们说了标准输出他会给你怎么样发邮件,那当然发邮件发到哪去了,是发到王的身份还是发到弱的身份呀,那弱的收一收吧,好像这里面还是旧的那个,但是这个有点干扰,我把这个些垃圾邮件删一下。
58:29
看一下啊,那那那我们以王的身份搜一搜,看看网友没有A看。啥意思,也就是说Chrome计划任务他发邮件可不是给入发,是给你自己发,看到没有,谁创建的计划任务就给谁发,它不一样啊,它不一样,而且呢,我们这样通过这个案例,大家发现这个它的变量更少了呀,它的变量是俩呀,USR病和病,连S病都没有。是不是连S病都没有都没,那当然我现在是普通用户,那我换成root来创建,那么换成root来创建计划任务,哎,Root打开的计划任务是root的,它不会干扰那个王的,那如果你想打开王的,那你需要指定王,明白了吗?你不指定王,他打开是自己的,就是每个人有自己的情方,这不就好吗?对吧,不不会影响别人对吧?哎,看那比方说我们还是这么写,行行行行行,那我们来看一下,这他创建计划任务的时候,它的变量是打在了哪啊,当然我们干脆就广播吧,因为root是有权限的,对吧?来包括对于我这这有个问题。
59:45
哎,Word呢,它正好是在UR并里面,所以这个就肯定变量是没有问题了,所以我不写路径它也能执执行啊,那我们看看它的它的变量到底是不是也是在刚才说的那个目录里面啊,非常少啊,它的它的变量刚才我们看到了非常少非常少。
60:12
他应该是执行了,来执行了,大家看是不是就这么点,那就这么点会有一个严重的问题,什么问题呢?就是将来你创建一个进方式,比方说我就想定期的执行一个什么呢?执行一个创建呃创建呃创建一个。啊,创建一个用户啊,创建一个什么都行,你看他,因为他它的变量里只有这个USR并和并只有这两个,所以这样的话呢,这个很多工具我们都知道,很多管理性工具都是在S病或者USRS病下面是吧,这个工具都在这,所以这些工具呢,通通它都无法执行了,都无法执行了,你看这里面大量的工具全在里面。
61:00
啊,对面全在。那这样我们就做一个简单的容易看效果的啊,比方说创建账号之类的,那创建账号呢啊,或者加路由,你看这个加路由也在这里面root。Root。RO root。你看路由是不是也在这里,所以如果你想在这个地方加路由的话,你它不写路径是有问题的啊什么意思,你看我这给他不加路由。好,我给大家加上一个路由,好加路由那怎么加呢?哎,我这给它加一个路由。啊,这个root and啊,比方说加一个这个net网络啊,11.172吧,幺六零点零十六啊这个1W是吧,然后十点零点零点一百,哎这就行了,好,那你再看这个路由不就写了吗?但是他能行吗?那一分钟能执行吗?问题是。
62:29
啊,我们这个路由命令根本就不在那个病里面,它在S病里面,所以到时候它执行不了,他就只能给你。报错了,报错了,报错的话呢,当然他这看看它那个计划任务的日志里面,将来有没有这个提示。哎,这个时间应该是快到了。
63:05
不行。没有显示啊好,那我们就看一下吧,看看邮件里面,你看第四封信。看是不是命令找不着了,根本就执行不了,你看那个路由里面有吗?是不是就没加进去啊,因为路径不对啊。那所以这个路这个这个计划任务呢,是需要大家注意它的路径问题的啊,当然像这个呢,你可以把这个路径写上US3SB,这是不是就行了啊,那实际上除了这种方法呢,你还可以把pad变量给它加上,这不就行了吗?比方说把你。
64:05
你觉得用的那些pad变量都给它加上,这些都可以加上,还是从这加吧。这是不是就行了,加上以后呢,这路径是不是可以不用写了啊,好看看还有过一会儿。但你看他老来邮件,老来邮件,因为加命去嘛,那命令没发现。啊,他这个计划任务的日志这有,你看这执行说是执行了,实际上根本没执行成功,没有执行成功好,然后呢,我们看看这边怎么样了。还有十来秒。
65:00
啊,等待着。啥意思,给我关机了吗?直接12点到了,那我这个计计划任务没没判断成功没成功啊,这个那个一次性的计划任务倒是执行了,到点就给我关,估计这个那就执行失败了呗。是吧,因为他关机了,是不是到点也没法执行那个计划任务了啊这个。给自己挖了个小坑啊,那意思就提醒我们下课呗,看看那这个计划任务的命令啊,就是这些,那这些呢,大家下来可以看一下格式啊,这个主要是pad变量需要注意,Pad变量这个地方要注意啊,这个如果你pad变量写不好,将来命令就会出问题的。啊,这个了解一下,这个基本上没用,这个是表示一个专门的服务是关机,因为有些生产环境中啊,啊,或者是台式机,家用电脑,家用电脑这种机器啊,他晚上有时候睡觉了就关机了,但是往往有一些计划任务都是半夜执行的,那半夜执行你关了机,它永永远没没机会执行,但是没关系,只要你开机的时候,你只要一开机过一会它就会自动的把你因为关机没执行的计划任务你执行,这就叫a Chrome,不过呢,这个对服务器没用,因为服务器长期不关机,所以不存在这个问题啊对笔记本可能有用啊,这是刚才提到的Chrome tab,我刚才用那个杠一创建,你还可以用杠L列出,还可叫杠二是删除啊杠优势指定他也存在黑名单,没名单一样,那这个呢,都比较简单,那刚才变量,那这里面我需要有一个地方,需要大家注意的地方,就是它的格式,这个格式。
66:58
这啊,有一个这样的问题,什么问题呢,这样。
67:05
格式啊,格式上议,如果我这呃写的是比方说嗯,这个这个。心斜杠十这个是什么意思?这就是每隔十分钟的意思,每隔十分钟,比方说零分钟开始,十分钟,20分钟,30分钟,40分钟,50分钟,又到零分钟了。啊,这就是每隔多长时间的意思啊,啊,当然。呃,我们在有的时候可能会出现这种。冲突,比方说我这写了一个天啊,这个是几月几号,比方说一号十号20号,我是可以这么写的,然后这个接下来这个月月不管了,但是呢,我这个地方写了个六,大家想这是啥意思啊,这啥意思,这个我这个一号20号十号周六周日,那这这这两个好像有点打架,那那那听谁的呀?那到底他最终执行的逻辑是啥?是一号十号20号和六月七六,呃周六周日都执行啊,还是说并且的关系,只有两个都满足了要求才会执行。
68:39
哎,那这个呢,在这个。说明里面慢帮助里面有一句话看到了吗?啊,看这个,如果你指定了新一个月的几号和星期几的话,看这一句话你自己看就能看懂了。
69:03
下我。看明白了吗?知道啥意思了吧?是货还是并且?啊或是并年不,你看这还举个例子呢,这一号15号中午并且是货,哎呀看英语不好啊plus吗?兄弟们加吗加那加还并且来,那是或吗或的关系啊,就是一号15号或者周五啊这两个条件反正满足一个就行。是吧,嗯,英语回去那个再看看啊,你不行回去补补补四级补补四级,哎,实在不行也没关系,把这个东西复制粘贴到那个什么,呃,那个那个那个有翻译软件嘛,对吧,百度啊什么那个那个谷歌不都有吗?谷歌叫translate吧。
70:14
谷歌点C是吧,这这个这谷歌翻译还是挺好的嘛。对不对,这这不比你自己吭哧吭哧看看错了好,看什么,以及看见没啊,实在不行会利用工具啊,大家学到这儿应该会用工具,别人一切都是靠自己啊,这个人生活在地球上,不是你所有的都能达到的,你要学会整合别人的资源啊,所以提前抱大腿啊,身边有学习好的都跟人关系好,下次他你搞不定让他搞就行是吧,利用别人啊好了,那关于这个进程管理我们就讲完了,那么上午我们就讲到这下午呢,我们学习那个aw k walk啊啊那个那个那个好玩,不过那个实际上也也就是文本处理嘛,文本处理好,那我们上午。
我来说两句