通常我们为了测试一个主机是否在线,都会使用ping命令去测试,然而人为的去ping数量过多的机器操作很繁琐,而且需要的等待时间过长,今天我就为大家介绍两种快速测试主机是否在线的方法,希望能给大家带来一些启发。
一、使用脚本循环ping测试
#!/bin/bash
#Author xiaoY
#高并发的连通性测试
#ping命令的-c选项控制ping测试的次数,-c4表示对目标主机执行4次ping测试
#ping命令的-i选项,控制多次ping测试的间隔时间默认为0.1秒,-i0.1可以提升ping的测试效率
#ping命令的-W选项,可以控制超时时间,默认一个主机无法ping通,需要等很长的超时时间,才会提示无法ping通,使用-W1,设置超时时间为1秒。
myping(){
ping -c4 -i0.1 -W1 192.168.4.$i &> /dev/null
if [ $? -ne 0 ];then
echo $i, >> up.txt
else
echo $i, >> down.txt
fi
}
#定义变量i控制循环次数,i从1开始循环,每循环一次,i自加1,直到i等于254循环退出
#在每次循环中对一个IP进行ping测试,如果ping通,将主机号存入UP.txt,如果无法ping通,则将主机号存入down.txt
#在进入循环之前,初始化文件
i=1
>up.txt
>down.txt
while [ $i -lt 255 ]
do
myping &
let i++
done
#使用&符号,将执行的函数放入后台执行
#这样做的好处是不需要等待ping第