shell脚本实现批量ping并分析丢包率和平均延迟
时间: 2023-07-11 20:21:00 浏览: 64
你可以使用以下的Shell脚本来实现批量ping并分析丢包率和平均延迟:
```
#!/bin/bash
hosts=("host1" "host2" "host3")
for host in "${hosts[@]}"
do
total=0
lost=0
delay=0
for i in {1..10}
do
result=$(ping -c 1 "$host")
if [[ $? -ne 0 ]]; then
lost=$((lost+1))
else
time=$(echo "$result" | grep -oP 'time=\K[0-9.]+')
delay=$(echo "$delay+$time" | bc)
fi
total=$((total+1))
done
if [[ $total -ne 0 ]]; then
loss=$(echo "scale=2;$lost*100/$total" | bc)
avg_delay=$(echo "scale=2;$delay/$total" | bc)
echo "$host loss: $loss%, avg delay: $avg_delay ms"
fi
done
```
这个脚本会依次ping每个主机10次,并统计丢包率和平均延迟。你需要将 `host1 host2 host3` 替换成你要测试的主机列表。