00:00
好,上节课啊,我们把这个弗鲁姆和卡普卡对应的这个通道啊,都已经打通了,那接下来我们做一个什么事呢?哎,我们来做一个实验哈,做一个什么样的实验。首先我们打开它之后呢,查看一下当前,哎整个进程的一个启动情况,首先我们在102上是不是已经启动了这个在103上呢,103是不是也已经启动了application。OK,哎,我在启动这个的时候,大家还记得我是怎么起的了吗?是,我拿的是这个命令。也就是说我在后台把这个启动起来了,是这样吗?哎,好,那我把这个钉出来啊。我是这么骑的,那现在做一个什么样的实验呢?我们是不是在这这个窗口上,比如说这个102,当时还有这个103,这样就起来吧,那么现在做什么事,我把这个窗口给它关掉,哎,关掉之后大家观察一下对应的谁呢?这个application会不会被关掉。
01:01
大家思考的问题。我要把这个窗口关掉,因为正常情况下你在企业里面开发,开发完毕之后,你要这个下班了,对吧?哎,下班的时候很有可能你这个窗口就会被关闭掉,那关闭掉之后这个application是否还在呢?好,我们来开始演示了啊,关掉。关闭完之后,我接下来我再来查看一下。看到了什么现象?是不是当前这里面102的这个application是不是就已经被关闭掉了。那这样的话是不是就不能满足我们对应的生产环境的要求啊?那有同学说海哥,那你把这个服务啊,启动的时候是放在后台了,那这次呢,你在前台启动看看它O不OK,那也可以我们再来试一下啊,再来复制一个回放。Cddlo。那来这之后呢,我们再来启动一下。这次呢,我是让他在前台,我这样去写可以吧,嗯,好,拿来。
02:05
执行。好,现在呢,这个是不是已经启动成功了,哎,启动成功之后,我来到这儿仍然再查看一下。看application有了吧,啊有了,然后我接下来我再来点这个窗口啊,我将这个窗口关闭掉,看一看左边这个进程怎么样关闭掉。看到了吗?哎,你说在这个102上当前这个application应用程序。又被杀掉了。那这肯定不是我们希望见到这种情况,那怎么能让这个客户端关闭之后,这个进程仍然能够正常运行呢?好,那下面我们再来克隆一下啊。复制。OK c DOD model啊打到这,那这时我们怎么执行这个命令呢?这样去执行。
03:04
我在前面加上一个NOPOP,哎,然后再来执行对应的命令看一下。对吧,这是我们刚才执行的,然后在前面我加上一个no。好,那下面我们来查看一下对应的这个进程号。对吧,哎,这个application是不是已经启动成功了。那接下来我们还来演什么呢?哎,我仍然将这个102给他干掉啊。干掉之后,我再回到这个102上,我再来查看。看一看这里面的这个application是不是仍然还存在呀。哎,那这个no ho,它有什么神奇之处呢?那下面来看一下啊,在我这个脚本当中有这么一个描述。说noup呢?该命令可以在你退出账号或者关闭终端之后继续运行相应的程序,那noup就是不挂起的意思。
04:09
不挂断的运行该命令。啊,也就是说不管你客户端关闭还是不关闭,那我都能够正常使用好。好,上节课我们是把这个,哎如何启动啊讲清楚了,所以说我们在企业当中啊,哎启动这个的时候呢,需要加上这个no harm,哎不间断的这个运行。那接下来大家再思考的问题,那你启动是搞定了,那弗鲁姆如何来停止呢?你看一下有专门的这个停止的脚本吗?没有,哎,他这个框架的没给你提供。那么你如何将这个这个进程号杀掉?怎么刷呀,哎,正常我们情况下就是Q。杠九对吧,然后把这个进号拿过来一复制。哎,这样去把它杀掉。那这样去杀掉,那如果我未来要写这个脚本的话,我怎么知道当前你启动的这个的进程号就是1466呢。
05:06
我能不能通过其他方式获取到对应的这个竞争号呢?哎,这是我们要思考的问题,知道吗?那大家思考一下怎么获取呢?那啊EF啊,然后我们过滤。我在要查谁呢?哎,查这个application好。知道吧,哎,这是我们直观猜测的。来看一下,哎,这里面查看的这个1466,你看这里面谁1466。啊,也就是说它能够获取到对应的这个1466,那我怎么从这一堆内容当中获取到对应的这个1466呢。而且你首先看下面,下面这里面还有一个多了一个grape。哎,那这个grab是谁呀?哎,这个grab其实就是我们用的,他那我不想要到这行,那怎么把它干掉呢。一点点来,那把它干掉很简单,接下来。
06:02
再来一个。哎,你不想要谁就来一个杠V,比如说我不想要这个GRP,包含grape这行的内容。你看。那现在呢,我就将这一行内容又给它过滤掉了,你看现在下面这个查询就没有了。那接下来,那下面这些内容当中,我如何过滤到它呢?那那这个咱们之前在学校脚本的时候,是不是学过s e cut,还有对应的ew k啊。哎,我们可以通过切割哎,然后来获取到对应的这个金子号,那怎么切呢。用谁呢?思考一下。比如说我们这里可以用aw k。Aw k可以对这些内容进行切割,它默认的这个切割符是什么?哎,是空格,那这里面就是空格。好,那他怎么切?切割完之后,然后这里面来一个大括号。
07:04
Print,比如说你看你这切割完啊,其实这个进程号它是第二个元素,那怎么获取到呢?比如说刀符。我这样,你过去看看能不能拿到1466。那你看现在呢,就拿到了这个1466,是这样吗?哎,是这样。那同学说啊,那终于拿到这金身号了,那下面怎么写呢?同说了。Q杠九挨着将上面这个内容拿过来。复制粘贴。这样行不行呢?比如说把你后面获取到这个内容,然后我杀掉。哎,直观感受是不是应该可以啊,哎,你发现说这个提示啊,这个参数不对。哎,他不这么玩的,那他怎么玩的呢。大家思考一下,它不这么玩,不这么玩,它是这样来一个X2。二四这种方式来获取。
08:01
那获取到之后相当于什么呢?哎,他这样玩,然后加上一个杠N1,这个还记得吗?杠N1也就说一次读取你前面获取到所有的内容,来一次获取一行。知道吧,哎,然后后面再加上。Q,杠九哈。就这样就可以了。这句话的含义相当于是把前面这些执行的过程作为下一个命令的结果复制到这。这样去做。啊,那这个呢,是一行一行获取,你要是N2的话,一次就是获取两行,N3次一次获取三行,啊总之呢,我是把它作为Q杠九的一个输入参数。好,那下面我们来试一下走。哎,你这回你再看102上对应的这个application,比如说应用程序进程号就已经被干掉了。哎,就这么简单。哎,那这里面有一个问题,有个什么问题呢?大家看到啊,现在呢,我是通过这个grape这个application。
09:04
那这个application啊,它呢,未来会有其他程序也用到的是application这个名称。那这里面就不好弄了。那有没有别的办法呢?所以说我把这个,哎,再启动一下啊,我再启动一下哈。好,接下来我们启动一下这个啊,退一下。然后这里面再起一下。啊,现在呢,这个应用程序启动成功了,哎,这个呢是15365,那来看啊,回头来我们现在原来啊这个程序启。杀死的时候是怎么杀的呢?哎,通过这个命令对吧,那前面呢,这个呢,是通过这个application。那application太好,未来呢,有可能有程序跟他重名。
10:00
那怎么办呢?我除了用这个application之外,我可以用这里面这些内容当中任何一个都行。哎,都可以能够过滤出来,那比如说那什么能代表我当前这个程序的唯一标识呢?哎,其实就是我们这个配置文件它。你看你起应用程序的时候,那么这个application是由这个配置文件进行启动的,那我就能够区分出来跟其他程序不一样的地方,比如说这里面我们可以这样去过滤啊,你看行不行。我是这样。Five。From。卡不卡点。哎,你看我同样的也是能够过滤出来下面这段话,哎,然后后面呢,我把后面内容补齐叭,如说怎么补齐呢,比如说这样,我这也是。出现。Grape,然后杠V,杠V呢之后。Grab。这样吗?哎,这样去把它过滤掉,过滤掉之后呢,再往下走。
11:01
竖线aw k。然后后面呢,这里面呢是大括号。Print,然后对应的DOLLAR2知道吗?哎,你再执行一下这样的进制号就拿到了,拿到之后,然后再往后边走,那就是这个。竖线xar GS。然后接下来杠N1,然后后面Q杠九。知道吧,哎,看一看行不行。查看,那现在呢,你会发现,哎,这里面是不是这个application就已经被杀掉了,哎就这样一个程序行,那也说杀死程序的时候,我们可以通过这行命令啊,就说杠EF这种方式获取到对应的进程号,然后呢,通过这个X阿克斯进行一个反杀。好,接下来呢,大家思考一个问题哈,我们呢,在HI102和对应的嗨103上。都安装了对应的这个是这样吗?哎,而且我们在启动的时候,是不是都是自己一个一个的去启动啊,同时停止的时候呢,也是一个一个的去停止。
12:09
那还是老规矩,我们能不能写一个脚本来实现的启动和停止呢?那当然是可以的是吧?哎,那下面我们来简单的写一下哈。呃,打开创建一个。写这种脚本啊,非常简单啊,它是有固定的这个模板的,比如说第一步井号叹号B。知道吗?然后下面是一个case语句传进来的一个Dollar in,第一个输入参数,然后in,好。那过来的话,首先呢是start好。然后。分号,分号结束,这是第一个分支,那它有启动就得有对应的停止到。然后下面。分号分号结束,哎,又一个分支,那下面这个呢,就是EAC,哎,也是case的一个反写,哎说整体上啊,哎这是先把这步先写出来,那接下来大家要思考一下,我现在要操作几台服务器呢。
13:09
哎,操作的是102和对应的103,那我这个循环便利,比如说for I,然后hi doop102 hi doop103,哎,你要操作几台服务器,那你就循环便利几台服务器,OK吧,好,那还记得负循环里面,哎对应的这个大括号就是度和那。这样吧,哎,那在这个过程当中,我们就可以执行对应的s sh Dollar I,然后后边就是具体的启动命令,是这样吗?好,那为了这个好看一点,前面会写上。一口。然后在里面。这样啊,然后来一个。启动。到了。哎,知道吧,哎,然后呢,采集。
14:01
哎,这样一写啊,显得打印出来更好看一些,OK。那好,那这个呢是启动,那接下来我们再把这个停止啊,也给大家写了。修改一下,那这块呢,就不叫呃启动了,叫停止。知道吗?啊,那具体的这样,这个启动里面执行什么事。停止业务执行什么事,是不是之前我们前两节课已经把一些准备工作做好了,那比如说看一下,看这块儿熟不熟悉。哎,我们启动命令呢,前面加上一个no hop,然后OPT model flu b啥意思啊,在脚本里面出现的这个啊,内容都得是写绝对路径,这样呢,可一致性啊要好一些,如果你写相对路径,一旦这个脚本变化的路径,那这里面诶,它又需要重新的一个呃,去适配是吧,这样就比较麻烦,通常在脚本里面我们都会写绝对路径,那我们这个NG,它就是在OPT model flu b目录下知道吧,来找到它,找到它之后呢,Isn't。
15:07
那我们要执行哪一个agent呢?啊好agent,然后之后呢,后面呢是哎杠杠Co,你说你这个配置文件在什么位置,那我这个配置文件呢,在o model Co目录下有一个file卡不卡哈。好,然后再往下后面,那你这个名称是杠杠name a1。哎,比如说你这个agent的名称是什么呢?哎,是A1好,那后面这个又是什么含义呢。如果你想获取到这个运行的一些日志,哎,尤其一些infer信息,那什么?哎,需要加上一个参数杠大D,然后root log来获取信息,那信息的级别呢,是in for和log fire。哎,日志好,那后面这个能不能看懂呢。这个熟悉吗?之前我们写过一个这个dev,然后呃,Dev,然后斜杠啊now。
16:01
是不是有一个系统黑洞啊,在写系统黑洞的时候,咱之前说过正常标准写法是一,然后二,然后在后面的第,呃,然后呢,把它扔到黑洞里面,比如说两个分别扔,但是呢,在企业里面啊,他不愿意这么写,哎他都愿意说把二给到一,哎也说错误输出,哎给这个标准输出啊,给到他。啊,给到他之后呢,啊,这个一呢,又扔到这个里面,哎,这里面他没有扔到黑洞里面,为什么没有扔到黑洞里面呢。因为啊,这个日志对我们来说其实是有价值的,万一你这个马启动的时候没启动起来,或者遇到一些异常,我希望能够通过观看日志,哎,找到问题所在,哎,所以说这个日志呢,我一般是把它保留,保留下来,那保留下来的话就是o BT model room,然后log1.t放到这个自己目录下啊好吧,这样一个情况,那这个呢是后台运行好拿回来。大家呢,可以慢慢的去看一下啊,琢磨一下,有不懂的地方呢,咱们再交流好吧。
17:03
那这个呢,就是这个启动啊,这个分支,那下面我们再来看一下这个停止,还记得我们刚才讲的那个杠EF啊,如何来停止的了吗。首先是杠EF啊,然后下划线grape过滤file flu卡不卡啊,然后后面呢,再干掉这个grape啊好,然后呢,下面呢是aw k切割取出来对应的进程号,那进程后面呢是反杀XX获取前面所有命令的结果,然后呢一行一行的给到下一个命令是吧?哎,作为下一个命令的参数。那这样去杀死啊。那这里面唯一有一个区别是这个地方。这地方我先拿过来啊,把这个拿过来。拿出来之后啊,大家看一下,这里面多了一个他。因为正常我们是没有他的。嗯,那大家思考一下,为什么要加一个它呢。
18:00
这句话这个斜杠是不是转移的意思。那为啥要转移呢?大家看一下这块。这有一个DOLLAR1,它表示什么含义,它是不是表示你这个脚本的一个第一个输入参数。艾,然后给到这儿。那如果你这个刀二不加转E,你看我这个外面最外边是不是双引号啊,双引号呢,它是能够解析里面对应变量的值。那思考一下,那如果说你这个双引号能够解析对应变量的值,那你不加这个竖线,那是不是它就相当于脚本的第二个输入参数。那跟我们这里的含义,我们这里想法的含义呢,是aw k,哎,这个处理完或者截取完之后第二个值啊。那完全是两个含义,是这样吗?哎,那怎么办呢?那你不想让它作为第二个数参数,那我就让它正常,哎怎么办?哎,你这后面是外面是双引号,那我就不让他解析,我给他来一个转移。
19:02
加上这个斜杠啊,这样就OK了,那当然了,你要想不想让它转移,还有一招啊,你可以把它换成单引号,但是啊,你看这里面是不是已经有单引号了,那就单引号和单引号相当于一个啊嵌套了啊,或者说那就他俩会成为一对,然后呢,它俩会成为一对,那就比较麻烦了啊,所以说这里面哎,你要用双引号的话呢,就加一个转义就可以了。好吧,哎,那这是这个脚本说明,那下面呢,我们来测试一下,看这脚本好不好用。呃,CD。然后这里面vm fe.ch啊,D级from啊。好,修改对应权限,那下面呢,我们来测试一下,看看这个脚本啊,它O不OK,那记住测试脚本的时候,它的启动和停止都要进行一个测试,那首先看一下这里面application。
20:00
下一个application,比如说呢,当前是处于启动状态,那下面呢,我们用这脚本把它停止掉。一。知道了哥。清完之后来看一下。第一个里面F已经干掉了,第二个里面也已经干掉了啊,你说这个脚本啊,停止功能是OK的,那下面我们再来启动一下F1。大宇宙。找一下对应的application application是不是也是OK的,哎,行,那现在呢,我们这个flu的启动和对应的停止脚本我们就写完了哈。
我来说两句