do
if [ `ping -c 1 192.168.0.2|grep 100%|wc -l` -ne 0 ]then
echo diaoxian_192.168.0.2 >>log2
fi
done
Linux下ping命令可以设置每次ping的时间间隔,具体选项参数如下:
1、-b n:测试与网关IP的连通性
2、-c n:执行指定次数n的ping命令
3、-i n:设定间隔几秒发送一个网络封包给一个地址,预设值是一秒一次
4、-s 字节数:执行发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。
想批量ping,建议编写与一个bash脚本(网上搜索一下基本语法),然后执行这个脚本就可以实现了。
希望我的回答有帮助到你。
#!/bin/bashwhile :
do
#包大小
PACKETSIZE=32
#发包数
PACKETTIMES=10
#间隔时间
INTERVAL=1
#ip列表文件位置
IPFILE=/tmp/1
#多长时间测试一次(秒)
SLEEPTIME=60
#临时文件
TMP=/tmp/pingtmp
#输出的ping.txt文件路径
OUTPUT=/tmp/ping.txt
#本机IP(这都不知道自己切JJ)
HOSTIP=1.1.1.1
while read line
do
> ${TMP}
ping -c ${PACKETTIMES} -i ${INTERVAL} -s ${PACKETSIZE} $line >> ${TMP}
DELAY=`grep rtt ${TMP} | awk '{print$4}' |awk -F "/" '{print$1"/"$2"/"$3}'`
LOST=`grep loss ${TMP} |awk -F "%" '{print$1"%"}'|awk '{print $NF}' `
DATE=`date +"%Y-%m-%d %H:%M:%S"`
if [ -z "${DELAY}" ]
then
DELAY=none
fi
echo "################################################" >> ${OUTPUT}
echo "${DATE} ${HOSTIP} > ${line} the min/avg/max is ${DELAY} and packets lost ${LOST}" >> ${OUTPUT}/ping.txt
rm -rf ${TMP}
done<${IPFILE}
sleep ${SLEEPTIME}
done
= =缺点是 运行时候 要加个 ./脚本 & 后台执行
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)