欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

一个可交互的并发ping检测脚本

程序员文章站 2023-11-02 12:42:22
复制代码 代码如下:#!/bin/bash#********************************##2013-01-11 17:00:00 wanggy exp...
复制代码 代码如下:

#!/bin/bash
#********************************#
#2013-01-11 17:00:00 wanggy exp  #
#note:ping monitor               #
#********************************#
set -u
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"
            if [ $hostip_beg -gt $hostip_end ];then
                    echo "$hostip_beg greater than $hostip_end!!!"
                    exit 0
            fi
    : >pinglog
    : >pingerrlog
    ping_count=3
    for ((hostip=$hostip_beg;hostip<=$hostip_end;hostip++));do
    {
            host=$network.$hostip
            echo "开始ping检测$host"
            ping -c $ping_count $host >/dev/null
                    if [ $? = 0 ];then
                            echo "$host is up"
                            echo "$host is up" >>pinglog
                    else
                                    echo "$host is down"
                                    echo "$host is down" >>pingerrlog
                    fi
}&
   done
wait
}
main()
{
    echo "----开始执行ping程序----"
    ping_fun
}
main
exit 0