|
|

今天闲着想着整一下hk认证的,接了论坛的老铁一个单子,比较简单就分享一下吧要求找ip段内最小延迟的ip,看ping 5次time结果,在linux系统下。
思路写个shell脚本就是用系统自带的ping 命令然后看time 的时间,根据时间做一次排序
1.获取脚本后输入的网段
2.拼凑ip从1-254执行ping 命令
3.将ping 通的ip 放入数组
4.排序数组并输出
5.显示排序后的结果
下面是shell 脚本
#!/bin/bash
ipSegment="192.168.2"
if [ "$1" == "" ];then
echo "网段不能为空"
exit 1
else
ipSegment=$1
fi
result=()
ip=1
while [ $ip != "254" ]; do
pingNum="0"
while [ $pingNum != "5" ]; do
rtt=`ping -c 1 $ipSegment.$ip |grep rtt |awk '{print $4}' |awk -F'/' '{print $2}'`
rtt=${rtt:-'-1'}
if [ $rtt != '-1' ];then
echo "$ipSegment.$ip =====> time=$rtt"
result[${#result[*]}]="$rtt=====>$ipSegment.$ip"
else
echo "$ipSegment.$ip" >/dev/null 2>&1
fi
pingNum=`expr "$pingNum" "+" "1"`
done
ip=`expr "$ip" "+" "1"`
done
echo "" > result.txt
for element in ${result[@]}
do
echo $element >> result.txt
done
sort result.txt -o result.txt
echo "=========排序后的结果=============="
cat result.txt
使用方法:
1.先将上面代码拷贝放入文本命名 随便.sh
2.上传shell 到服务器
3.授权文件权限,给执行权限就行,这里都给了 chmod 777 随便.sh
4.运行 ./随便.sh 192.168.2
就到这吧,这里就分享了
|
|