shell脚本实现机房服务器巡检(初步)
前言:
C语言有一定功底的同学能很快上手linux下的shell脚本应用。以下脚本以应用ping以检测机房机架上个服务器的连通性。并配以必要的注解
新建一个shell脚本的简单流程:
#vim filename.sh 新建并编辑脚本
#chmod +x filename.sh 赋予脚本文件执行权限
#./filename.sh 执行脚本
例子:
ping.sh
#!/bin/bash
#
PING() { #声明一个函数PING,重复利用
if ping -c 1 -W 1 $1 &> /dev/null; then #ping一次某ip,等待时间为一秒。此处直接使用命令返回值作为判定条件。一秒内收到返回值则if判定的条件为真,否则为假。
echo "$1 is online."
else
echo "$1 is down!!!!!"
fi
}
while true; do #利用while的无限循环来持续输出巡检结果。
for I in {100..129}; do #巡检连续的ip
{
PING 192.168.89.$I #此处为函数调用处,重复利用了PING函数。‘192.168.89.$I’作为PING()函数的参数($1=192.168.89.$I)
sleep 0.5 #输出结果后睡眠半秒,给用户一个查看时间。
}
done
for I in {89.243,40.1,42.1,49.1,47.1,60.1,54.1,56.1,44.1,42.3,78.1,78.9,222.222}; do #处理不连续的ip段
{
PING 192.168.$I
sleep 0.5
}
done
#下面一行为完成一次shell的巡检后,给予用户的信息反馈
echo "Finish! PING process will restart 10 secomd later..
If you want to exit ,click Ctrl + Z
"
sleep 10
done
进阶版本:
serping.sh
#!/bin/bash
#
PING() {
if ping -c 1 -W 1 $1 &> /dev/null; then
echo "$1 is online."
else
echo "$1 is down!!!!!"
fi
}
while true; do
for I in {‘501E‘,2.{2,4,5},1.123,14.60,1.30,1.23,2.20,‘301F‘,12.{8,5,6,7,3,2},‘502A‘,1.124,0.20,1.{20,25},‘502B‘,1.16,13.2,14.13,3.4,1.10,0.205,16.7,‘502C‘,1.42,16.{4,9,6},13.{4,1},1.24,13.7,16.8,‘502D‘,13.5,1.15,3.29,14.14,3.1,14.{4,7,11,12}}; do #机架名称和ip字符放在for循环里,连续的ip段使用{}简化表示
{
if [ ${I:0:3} == ‘502‘ -o ${I:0:3} == ‘501‘ ];then #取字符前面三位数比较,如果为50X,则是机架号,直接输出机架号
{
echo $I
continue #提前结束本次for循环
}
else
{
PING 192.168.$I
sleep 0.5
}
fi
}
done
echo "
Finish! PING process will restart 10 secomd later..
If you want to exit ,click Ctrl + Z
"
sleep 10
done
多学shell例子,就可以融会贯通了。
有兴趣的同学可以复制粘贴到shell脚本中测试。
本文出自 “zgysolution” 博客,请务必保留此出处http://zgysolution.blog.51cto.com/9605745/1599131
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。