linux 同时ping我txt文件里的多个不同网段的ip两个小时并统计每个ip的平均延时,最短延时,最长延时,丢包率
时间: 2024-05-03 22:21:15 浏览: 77
Linux必学的60个命令
这个任务可以通过编写一个 Bash 脚本来实现。以下是一个简单的脚本示例:
```bash
#!/bin/bash
# 定义变量
file="ip_list.txt"
time=7200
# 读取 IP 列表文件并循环 ping
while read ip; do
echo "Ping $ip..."
results=$(ping -c $time $ip | tail -n 2)
# 提取结果中的延时和丢包率
time_array=($(echo $results | awk -F'/' '{print $4,$5,$6}'))
loss=$(echo $results | awk -F', ' '{print $3}' | awk '{print $1}')
# 计算平均延时、最短延时、最长延时
avg=${time_array[0]}
min=${time_array[1]}
max=${time_array[2]}
# 输出结果
echo " 平均延时:$avg ms"
echo " 最短延时:$min ms"
echo " 最长延时:$max ms"
echo " 丢包率:$loss"
done < $file
```
这个脚本做了以下几件事:
1. 定义了要读取的 IP 列表文件和 ping 的总时间。
2. 循环读取 IP 列表文件中的每个 IP,然后执行 ping 命令。
3. 从 ping 结果中提取延时和丢包率信息。
4. 计算平均延时、最短延时、最长延时。
5. 输出结果。
要使用这个脚本,请将它保存为一个文件(例如 `ping_ips.sh`),然后在终端中运行以下命令:
```
chmod +x ping_ips.sh
./ping_ips.sh
```
注意,IP 列表文件中应该每行只包含一个 IP 地址。如果你的 IP 列表文件包含其他信息(例如注释),则需要修改脚本以正确解析 IP 地址。
阅读全文