可交互的并发ping检测脚本
时间:2014-09-15 03:01 来源:linux.it.net.cn 作者:it
可交互的并发ping检测脚本
重点& 跟wait,这样“并发”的结果是输出结果不是能按顺序,后台返回。如果需要再排序下。
复制代码代码如下:
#!/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
(责任编辑:IT)
可交互的并发ping检测脚本
复制代码代码如下:
#!/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 |