在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
复制代码 代码如下: #!/bin/bash #main--- network=192.168.1 ping_count=3 IP=1 :>IP_use :>IP_idle :>ping_action echo "`date "+%Y%m%d %H:%M:%S"`----->脚本开始执行......" while [ $IP -lt 255 ] do host=$network.$IP echo "-------->开始检测$host服务器通迅是否正常,ping次数$ping_count." ping $host -c $ping_count >.ping_tmp sleep 1 cat .ping_tmp >>ping_action echo "-------->服务器$host检测已完成." sum_ping=`tail -2 .ping_tmp |head -1 |awk -F, '{print$2}' |cut -c 2-2` loss_ping=`tail -2 .ping_tmp |head -1 |awk -F, '{print$4}'|cut -c 2-5` if [ $sum_ping -eq $ping_count ];then echo "-->$host IP 已经在使用中" echo "-->$host IP 已经在使用中" >>IP_use else echo "$host IP 目前空闲:$loss_ping" echo "$host IP 目前空闲" >>IP_idle fi IP=$((IP+1)) done echo "`date "+%Y%m%d %H:%M:%S"`----->脚本运行完毕......" 要实现Ping一个网段的所有IP,并检测网络连接状态是否正常,很多方法都可以实现,下面简单介绍两种,如下: 脚本1 复制代码 代码如下: #!/bin/sh # Ping网段所有IP # 2012/02/05 ip=1 #通过修改初值 while [ $ip != "254]; do #yes正常,no主机不存在或不正常 ping 192.168.0.$ip -c 2 | grep -q "ttl=" && echo "192.168.0.$ip yes" || echo "192.168.0.$ip no" ip=`expr "$ip" "+" "1"` done 输出结果: 192.168.0.1 yes 192.168.0.2 no 192.168.0.3 no 192.168.0.4 no 192.168.0.5 yes 192.168.0.6 no 192.168.0.7 yes ... 脚本2 复制代码 代码如下: #!/bin/sh # Ping网段所有IP # 2012/02/05 ip="192.168.0." for i in `seq 1 254` do ping -c 2 $ip$i | grep -q 'ttl=' && echo "$ip$i yes"|| echo "$ip$i no" #yes正常,no主机不存在或不正常 done 输出结果: 192.168.0.1 yes 192.168.0.2 no 192.168.0.3 no 192.168.0.4 no 192.168.0.5 yes 192.168.0.6 no 192.168.0.7 yes ... |
请发表评论