检测网段IP使用情况的shell脚本
检测网段IP使用情况的shell脚本
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:#!/bin/bash#main---network=192.168.1ping_count=3IP=1:>IP_use:...

复制代码 代码如下:

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

...

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新linuxshell学习
热门linuxshell学习
脚本专栏子分类