linux 检查全网段ip,检测网段IP使用情况的shell脚本

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

...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值