首页 » shell » 正文

安全脚本-SSH连接失败最大次数限制(构建高可用LINUX服务器)

好吧,今天周天,没去公司,最近越来越小资了,居然周天不去公司!而且晚上还做了可乐鸡翅,第一次下厨,味道还行,刚维护完服务器趁着心情抓紧看书,看到个脚本,写下来,虽然不怎么懂,但是我会逐条去理解:

好吧,开始解释下边的代码,(为什么放到上边解释呢,因为我放到下边发现老是在编辑器里边,无法跳到空白栏),注释加到代码里边发现会换行..

好吧,我承认下边的代码我写错了,写成中文的了…,这个我就不解释了,这个就是说我要bash来做解释器,因为shell有好多种….语法有所不同,所以这个肯定要有

好吧,这个就是注释了,光棍节的注释

下边我们逐个命令来解释了,

这个句话,就是要查看/var/log/secure下的内容,查看了干吗?当然是给后边的命令了…

稍等,我开虚拟机

这条命令执行的结果为:

然后就是这条命令:

awk 神器啊,我们先看下结果吧,好吧,我这输出为空….,先解释下NF,NF就是每行拥有的字段总数,

然后就是输出倒数第三列….

这个就是排序了….

这个就是算算每个的次数了,uniq的意思是去重复,-c 才是count

然后就是下一句

和下边的

是一对,这个我就不罗嗦了

这个的意思就是按照标准格式输出

类似:

192.168.0.1 = 10

然后把它输出到black中

然后定义了一个最大次数

这句话就是一个循环….(应该是一个逐行的循环…每一行都取出来 @皮总 ,是这个意思不?)

这句话就是说:给老子把第一行拿出来,然后按照“=”进行分割,把第一个参数赋值给IP

同样的把次数赋值NUM

这个地方看一下以前hosts.deny是否有这个ip了,当然,/dev/null是个垃圾箱..无底的

$?是一个状态码,就是上一条命令是否执行成功了,

也就是说grep 是否有结果,有说明已经存在,没有说明…就是没有

如果没放进去过就放进去

然后就是结束if

结束if

然后我来执行下,因为语法什么的的,空格什么的,我估计会有问题

好吧,果然报错:

我晕啊,这个是啥个意思啊?

是不是空格有问题啊?

大爷的,我查了好半天居然是少了个then…

好吧,还是不能运行

大爷的,9行不报错,10行报错…

好吧,网上查了下说要换成bash,问题我本来就是bash啊!!!!好吧,应该是awk语法有问题,我记得之前不是这么写的

好吧,我错了

我改成这样也报错….

好吧,我忽略了9行报错说命令不存在….

好吧,实在看不出来了….

@皮总看这里,这个为啥报错啊?

———————————给小弟解释下吧

最终不报错的版本如下:

感谢@wzk,@皮总,@wzp24,还有每次遇到问题都会打扰的@逝水fox

最后感谢@红薯….

感谢国家,感谢人民…

感谢多了….

 

 

时间:2012-11-11 20:44:12

 

Zhiming Zhang

Senior devops at Appannie
一个奔跑在运维路上的胖子
Zhiming Zhang

Latest posts by Zhiming Zhang (see all)