当前位置: > shell编程 >

shell ping函数的实现代码

时间:2014-11-23 14:18来源:linux.it.net.cn 作者:IT



shell ping函数

一例ping脚本,可以实现交互,挺不错的,分享给大家。

代码:
 

复制代码代码示例:
#!/bin/bash
#2013-01-06 14:00:00 
#site: www.it.net.cn
#
set -u
#set -x
ping_fun()
{
d_network=192.168.1
echo -n "input the network(default $d_network):"
read network
: ${network:=$d_network}
echo "network:$network"
d_hostip_beg=1
d_hostip_end=254
echo -n "input the hostip(default $d_hostip_beg $d_hostip_end):"
read hostip_beg hostip_end
: ${hostip_beg:=$d_hostip_beg}
: ${hostip_end:=$d_hostip_end}
echo "hostip_beg:$hostip_beg"
echo "hostip_end:$hostip_end"
count=3
for ((hostip=$hostip_beg;hostip<=$hostip_end;hostip++));do
        host=$network.$hostip
        echo "开始ping检测$host"
        ping -c $count $host &>/dev/null
                if [ $? = 0 ];then
                        echo "$host is up"
                else
                        sleep 3
                        ping -c $count $host &>/dev/null
                        if [ $? = 0 ];then
                                echo "$host is up"
                        else
                                echo "$host is down"
                        fi
                fi
        done
#echo "执行完毕"
exit 0
}
main()
{
echo "----开始执行ping程序检测----"
ping_fun
}
main
exit 0

附,Linux下shell ping指定ip段
代码:
 

复制代码代码示例:
#!/bin/bash
for a in {1..254} #或$(seq 1 254)或for(())
do
if ping -w 1 -c 1 192.168.1.$a | grep "100%" >/dev/null  #ping一次变量的ip地址 (c1)ping一次 ping等待时间长 定义参数 –w –l 等待超时的时间为1秒,
then
echo "192.168.1.$a is Not reachable"
else
echo "192.168.1.$a is reachable"
fi
done
 
(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容