linux下自动telnet、ping服务器port、ip的小脚本

       接到甲方通知某个应用系统要全国开放,需要在北京总部将应用系统集成到全国,做这个的前提是网路要通。各地要开通网路的安全策略,所以有已大批ip和端口需要测试连通性。让做集成的哥们一个个去测的话,感觉会死人。所以写了两个小脚本自动在应用服务器测试ip列表的端口连通性。

具体脚本如下:

---ping

while true

do

cat iplist|while read line

do

a=`echo $line|awk '{print $1}'`

ping=`ping -c 3 $a|awk 'NR==7 {print $4}'`

#echo $ping

if [ ! $ping ];then

echo "$line disconnect"

else

echo "$line OK"

fi

done

done

---telnet

while true

do

cat iplist|while read line

do

echo > nohup.out

a=`echo $line|awk '{print $1}'`

nohup telnet $a 22  &

s=`ps -ef|grep $a|grep -v grep|awk '{print $2}'`

sleep 2

if [ $s ];then

kill -9 $s

fi

tel=`cat nohup.out|awk 'NR==4 {print $4}'`

if [ ! $tel ];then

echo "$line disconnect"

else

echo "$line OK"

fi

done

done

       两个小脚本可以直接用,判断的原理是根据ping或者telnet的日志不同进行判断,比如ping如果不通,则日志不会打印7行,如果通的话,日志会打印大于7行,所以判断第7行“NR==7”,为空,则不通,不为空,则通。telnet也是同理。但是不同的是telnet需要使用nohup进行,因为telnet不通的话session会自动连接很久,使用nohup可以通过sleep进行控制。

除了这两个脚本,唯一需要做的就是把ip跟单位名称写到iplist中,且顺序必须为先ip 在单位名称 如:

vi iplist

99.12.12.12  hebei

100.12.12.12 anhui

12.23.23.23 hunan

......

你可能感兴趣的:(linux下自动telnet、ping服务器port、ip的小脚本)