如果我们身为工程师或网络管理员,那么我们肯定遇到过这样的情况,我们临时要用到某个Ip地址,或我们要知道192.168.2.0这个网络中所有的地址哪个被用掉了,你会怎么做呢?还有,你要检测一堆服务器中哪个服务器是正常运行的,哪个已经Down掉了。一个服务器一个服务器去查?噢no!!!这是个什么样的工作量啊!!关键是这样做太繁琐,下面我们来看个实例,用脚本快速探测一段网络中哪个服务器是正常运行的,哪个是Down掉了的。
下图就是我们扫描所需要的代码了
我们来解释一下
for num in {1..100}这个还是一个赋值语句,num等于1到100
host=192.168.2.$num这个的意思是
host=192.168.2.1……192.168.2.100
ping -c2 $host &>/dev/null这个就更简单了,ping -c2是说ping两次$host地址($host等于192.168.2.1.。。100),然后不管通了没有,全部重定向到null,就是说丢弃
if [$?=0]; then
echo “$host is UP”
else
echo “$host ip Down”
fi
done
这个的意思就是说,如果$?=0,那么显示$host is up,这里的$host就是指单个的了,如果$?不等于0,那么显示$host is down
其他的好理解,那什么叫$?,这是个神马玩意儿??
$?是linux中的一个对于上次执行结果的一个反馈,如果上次执行时成功的,那$?就是0,如果不成功,就是1,我们来试试
如下图,我们执行了ls命令,成功的显示了/下的文件,那么$?就是0
我们再来看这个,ping 10.0.0.1是不通的,没执行成功,那$?就是1
好了,理解完我们来运行一下
完美成功!!