粉丝3.0万获赞14.6万


如果呢,可能是最不容易让人重视的语言了,呃,既不是主流语言,想加把拍散 cc 加加对吧,能吸引到一堆的追随者,那也不像其他的脚本语言,像 js 那么受全球开发者的欢迎,那很多小伙伴呢,甚至都不知道有这么个语言, 但是呢,在互联网的各个领域,几乎都有弱的身影,在服务器网关,在分布式缓存,在游戏领域都会用到它。 如果呢,是一种轻量小巧型的这个脚本语言啊,非常小,只有一百多 k。 那么设计的目的呢啊,主要是为了能够嵌入到啊应用程序中,为我们的应用程序能够提供灵活的拓展和定制功能。 而且它的性能呢,非常的好啊,底层是用 c 写的,而且还有非常丰富的足监库。我们在设计高冰发场景下的功能的时候呢,也经常会考虑到啊,使用 luo 呢来做一些 啊,比如说像在这个商城购买商品,那么为了保证库存扣减数据的正常,那么我们可以使用 ra 呢啊来操作这个威利斯来保证操作的原子性。同样的原理,像秒杀抢购啊,也都可以使用 ra 呢来操作库存的扣减。 另外呢,在这个网关层啊, ngx 加 luo 呢,可以用来做一些 ip 的排名单啊,用户的健全啊,请求过滤,请求转发等等。甚至我们可以用 loo 呢,根据系统的数据以及条件来实现 app 的灰度升级,测试哪些用户升级这个功能,哪些用户升级另外一个功能, 我们可以通过后续的反方数据的对比呢,来分析产品的好坏。那么除了高频发下的产品呢,还有很多其他的应用啊啊?比如说在游戏领域 写一些动作脚本啊,在这个图像处理方面呢,可以写一些这个美颜功能啊啊?像这个图像框啊,瘦脸,对吧?还有一些面具模板啊,都会用到这个录啊。


好,我们来看最后的这个三个塞尔实战脚本,当然后期我还会分享更多的给你好不好?因为你前期学的这个塞尔的知识还比较少。第一个比如说我们要编写脚本检查服务器运行状态, 先不要说这个脚本是什么,你心里有数吗?看到这个标题是不是就是大脑一片空白?如果是那接下来你就愿意把我教你的这个脚本记到心里面。你的脚本记得越多, 那么你写脚板的时候越思路,就像当年我们写作文的时候我们会记一些好的段子, 什么荷塘月色是吧,那些段子我们要记一下一样记住了吧,你记得越多,然后呢你就越 有思路了。好,我们来看一下啊。那你没有思路,那我们来开出的看一下 状态,好吧。对,我们在这里并下的拜我们去写一下。我怎么知道这个服务有没有问题是吧,我们的要求是判断服务有没有启动。 好,那么你可以这样去判断啊。呃来我们先判断一下啊。刀老井大家知道什么意思吗? 有没有参数是吧?好,这一等于一,如果我们这个参数是什么?有一个的啊,大于会等于一的。然后呢我们去判断, 判断什么呢?我们可以说思维思或者说 steam 都可以。我就看看你的状态 好不好。呃,在七下 s s hd cx 可以吗? 对,这个并不爆错啊,看到了吧?对,正常,其实我们应该弹出的是 ctm, ct l 是吧? cctm ct l 是吧? ss hd 一般我们都手动去看,如果看到了是 xt 五说明你是正常运行的啊,你可以用这个吗?可以用这个啊。 好啊,那么在这里我们想要拿到他,那这个不能用他来表示,应该用什么?到了一参数来表示啊?到了一好,然后呢?标准的输出,我们 放到低微下烂下,这样的话,我们输出的这个结果,因为我们不需要这个弹出这个结果,如果都弹出来那个结果了, 好不好?没有问题吧?好,那么如果你有这个服务,自然这个输出就是对的,如果你没有那个服务的话,就可能是错了,好不好?比如说我们随便来一个什么不存在的服务, 好吧,他会告诉你,是吧?是错的。好,所以我们可以判断一下。刀郎问号, 好吧,这是一个思路啊,有同事说我思路都没有。思路都没有,说明你写的这个脚本确实挺少的,所以你更应该怎么样? 对,更应该多写点好不好?在这里我们去当了问号, 这是上一个命令的返回值,如果上一个命令返回值 eq 是等于零的,那说明我们命令是执行成功了, 好吧?对,命令能指引成功,那么就告诉他挨口对面输出好不好?输出什么呢?我们就说这个服务在运行,可以吧?对,这可以的啊,输完这个东西以后呢?那如果没有呢? l 四啊, 是吧?如果我返回的不是啊,那我,如果我们可以尝试什么?把这个服务给他启动一下,说明我们的服务是什么? 可能没有起来,是吧?那怎么起起伏呢?就是四 s tm, 比如说 start, 好吧,当然有很多种方式判断他有没有起啊。好吧,我们可以把它撕大,他启动一下。 启动谁呢?启动一下,到了一,好不好?好,启动完,到了一这个地方输入一下 f i 结束啊,如果前面这个地方是吧,也没有起成功或者什么呢,是吧?那可能是我的写的方法有问题,所以我在这个地方我写一个这个地方啊, 对,执行脚本的格式,你应该是输入,就是我的输入的方式可能有问题,应该是 ss 是吧,加上到二,然后再加上什么服务的名字到二零是我们的 siri, 就是山药有脚本自身的名字,这样把前面那个也正好给大家复习了一下,好拿到他以 正常的正常执行,就应该是这样的啊,告诉你服务正在运行,如果我们写错了,写了,这样,好,告诉你这个失败了是吧,没有被找到这个服务吗? ok, 好,这是关于这个山药胶问, 这回大家清楚了吧,对你要关于这个东西有一个了解啊,大家还有很多种方式啊,比如说我看你端个号有没有起,我看你有没有存在进程 等等好不好?对,这个也可以的啊,好,还有一个是什么呢?再一个是这样的啊,比如说我想判断学生的成绩,这个这个主要是 一幅多分支啊,多分支,我们经常要用的这个东西,这个我就,我就不给你手敲了啊,我们就直接看了, 好,我们来看这个地方啊, v i check cg 成绩,那么我们在这里输入一下, 你自己往往里粘脚本的时候一定要注意啊,格式粘的有没有对,好吧,瑞的杠屁,请输入你的成绩,成绩付给变量 cd, 好吧,然后呢? cd 呢?如果大于等于零啊,并且是小于等于五十九的, 那就是说零到五十九的时候,我说你应该补考一下好不好?咱们学生是低于八十分算不及格,满分一百分。清楚了, 低于八十分你是拿不到毕业证的啊, cd 是吧,大于六十是吧,这个七十说你还是个良好,对吧?然后呢?七十到这个地方是好,然后接下来是优秀。 对,所以从学生毕业的都是优秀,要么就不记得,要么就是优秀。没有摸了两口那一说 好,人生就应该有这样,敢给自己较劲。请输入你的成绩好不好。输入一下五十九 补考吧。接下来输入六十六啊。还行,输入八十八, 优秀收一百也是优秀,你也要测一下啊。对,我输了给一千是吧,范围错了。好,这是咱们这个成绩,这个 ok 好不好,当然你们做的时候你把这个炕一扇听着吧。你能是吧,啪啪啪写出来他那就没问题 啊,你要是敲不出来,那就说明你记得还不够多,你再用心的去记。 好,那么知道了,这个再往下看。实战三,最后一个实战了啊,每周晚上三点备份数据库里的数据库,服务器上的外部 db 库中的所有的数据,到系统的这个目录下。 好吧,备份的时候要使用系统日期做备份文件的名字。有思路吗?有的时候没有思路,没有思路就对了好不好。 所以因为你还不知道怎么备份数据库呢啊,我把那个脚本先写到这,好吧,后期你用的时候过来拿就行了。 ok, 文员打开他是吧这个思路。这种写脚本的思路很好啊,你看啊, b a k 就是办卡啊,办卡内幕文件,我要备份的内幕文件,他把这个日期先给你取出来好不好?在这个地方,当然你也可以逮他什么,有时候我们家百分号 f 显示的是一样的 好吧?对,你要记不住这个,你就统一记这个,这个虽然写的多,但是他很清楚,因为突然间你看到这个,哎,好像忘了他是啥意思了,但是这个一定能出来哈。啊,你要, 然后接下来拿一个变量去存你备份文件的路径好不好?用户是如他密码是一二三,是数据库的账号和密码 啊,数据库要背废的是这个,然后接下来判断,如果我们背废的这个,这个文件不存在,如果你不存在, mk 点二,我创建一下 好不好?接下来满搜狗大的开始进行买搜狗大不就是往下倒数据库了?倒数据库的时候需要输入用户名和密码好不好?然后呢?接下来刷新一下日志, 然后呢?接下来是要我要背哪个库呢?啊?写上这个库,然后呢?重定下。重定下到哪呢?重定下到这里面 这个值是什么意思?你要是不知道你就替换就行了。变量 b a、 k、 dnr, 他是什么呢?他是这个好不好? ok, 然后呢?接下来 迈克内姆 feel 他叫什么呢?迈克内姆 feel 是这个,这这个是什么?这个是一段日期。好,那你可以把它替换成日期,比如说替换成二零一八杠五杠二十五, 最终结果就是这个意思,把它搞到这里面好不好?清楚了,从这对清楚了,清楚了,你得敲 好吧。你没有数据库,因为你没学,是吧?那我来说这个,因为你还没有学数据库,所以你可以拿 etc 来做一下实验好不好?对,千万不要,因为我还没有学,我就这样看一看。错,你这样 看看你绝对写不出来啊,只要你动手敲了,你才有可能写出来。拿 etc 来做这个实验 看。好啊,边打开 etc, b a c k。 好啊, b, a k 吧,都行啊。 ss 打开,我们在这里去写入一下啊。写的时候呢,我们先取三个变量。 好吧,这个是取日期的。好,我要放到跟下的 etc b a k 下背到这下面我要对 src 原件 etc 做备份。 做背背的时候呢,我先判断一下有没有这个文件。这个写法很好啊,一旦没有这个文件我就要创建,如果有了我就不创建了。 听出来吧,前面存在了,那么后面这个就不执行,前面这个失败了,后面这个才执行好。执行了以后呢,我们接下来剩下的就备份吗? 能备份这个命令很简单,哈哈,就是他 zcvf 好不好,我要对你进行备份啊,我的名字是这个,然后叫这个啊,对谁呢?对, etc, 这是备份出来的文件的路径。 好吧,这种替换的时候别晕,他实际上是备份到 etc。 这下面这种写法有好处啊,就是我想换其他的时候,我不用改上面的脚本,我只要改上面的变量就行了, 清楚了吧。对,这种写法一定要记住这种思路。对,你直接改那个就行 啊。最后如果备份成功了以后我来验证一下,在这里我就是简单的输出一下。输完以后怎么有没有验证呢?我看一下文件的大小,其实就行。好吧,你也可以看看文件的大小 清楚吧,杠塞子是吧,你只要不为零就行,然后告诉你备份成功,保存退出好不好? 回车以后呢,他就开始补单的备份了啊。好,备份完了以后你看看那个效果, 我来给你整理一下。背放完了以后记得写到什么。对,你可以看一下最终输出的是十二兆好不好,哪个呢?文件叫这个 看了吧。对,告诉你备份成功了, 那这个脚本应该没有什么问题。那你可以怎么样?剩下的你就写狂浪推波就行了,加个 x 啊。写狂浪推波这个就得加 x 啊,来一个完整版的好不好,这个实验谁都得做啊。 好框推波杠一去写。好吧,几点备份?当我问大家数据应该几点备份的时候,你别给我回十二点,十二点, 其实我们那个时候还没睡呢。好吧,接下来我们要输入的是这个啊啊,他应该在 etc 下叫做 b a k dsh 啊,你要不知道,你自己去看一看那个啊,好不好。对,这个脚本别写错了啊。 ok, 写完这个因为他可能要对外输出很多东西,我不想看到那些输出的东西。我们把错误输出重定向到什么?对,错误输出重定向到标准输出里面 这一句还记得吗?错误输出等于标准输出的位置。那标准输出到哪呢?到第一位下的。那这样的话就干干净净了, 就不带往外输出了。懂我意思了吧?好,这是利用了我们重定向的那块,这样的话通过这一个脚本 把我们前的知识又串下串了一下,所以零六四这个你好好学。好吧,没有掉队的时候,只要你用心的去学,因为前面学的知识 在后面都会复习。好,这是今天讲的瑞的好不好?流程 past, 流程控制中复杂条件和通配服实战赛尔三个赛尔脚本, 回去把我讲的这些东西全都删掉,自己写,自己做填空。啊,我要有一个这样的一个需求,那你就删掉他 清楚了吧?对,然后我要看成绩。然后呢?怎么样?对,你就把这个东西趴一山,看看你自己填空能不能填下去。我要看这个 顺顺利利的把这几个都写出来。然后呢?对,然后你就这一节课就过了,没写出来,这一节课就过不了。好,这是今天老师给大家分享的这个内容好不好?