使用%或UP / DOWN在linux脚本中显示活动的ip-addresses

时间:2015-05-31 14:13:29

标签: linux bash shell ubuntu

我有一个ip-address:192.168.0.205 我可以在脚本中ping它:

for i in 192.168.0.205 ....
do
  ping -c 1 $i
done

但现在我想要脚本显示: 192.168.0.205 UP或DOWN

还有一种方法可以用%表示:例如:75%UP?

1 个答案:

答案 0 :(得分:0)

你可能想要的是:

x=0;
a=1
b=5
for((i=$a;i<=$b;i++))
do
    y=`ping -n 1 192.168.1.$i | grep unreachable | wc -l`
    x=$(($x + $y))
done;
echo "$x $b $a" | awk '{printf "%.2f %% DOWN\n",($1/($2-$3+1))*100}';

x:包含DOWN IP的数量

a:第一个IP地址的最后一个八位字节

b:最后一个IP地址的最后一个八位字节

y:如果IP为UP,则包含0,否则为1

我希望有所帮助!

PS:将-n更改为-c或其他选项可以在shell中工作!