一个朋友提的一个需求,有一批应用的主机需要检查网络是否正常,当然很多方法,如部署又saltstack的话直接检查minions是否在线就可以,或者可以通过python来弄个简单的脚本直接ping即可。反正方法很多,这次我打算用shell来简单实现,当然这个只是简单的demo,可以补充很多内容,比如写入log,也可以在深入一些,获取主机名,每天定时发送报告等等。主要是用来shell编程的简单练习,函数调用。
测试如下
#!/bin/sh function demo_ping(){ ping -c 1 172.16.1.${1} >/dev/null 2>&1 if [ $? == 0 ];then return 0 else return 1 fi}for i in `seq 1 254`;do demo_ping $i if [ $? == 0 ];then echo "server of 172.16.1.${i} is on line" else echo "server of 172.16.1.${i} is offline" fidone
结果
[root@dev_slliang ~]# sh ping.sh
server of 172.16.1.1 is on line
server of 172.16.1.2 is offline
server of 172.16.1.3 is on line
server of 172.16.1.4 is on line
server of 172.16.1.5 is offline