检测网段IP使用情况的shell脚本

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
复制代码

代码如下:

#!/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

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容