while read pong; do echo "$(date +"...

问题描述 投票:0回答:1
You can wrap the check with a loop that will run for 15 minutes. Each test can be limited to 1 minute,

sudo ping -i .001 -w 900 -W 899 www.google.com  |
while read pong; do
    echo "$(date +"%T.%N"): $pong"
done > "test_$(date +"%Y_%m_%d__%H%M").txt"

Following -Whttps:

我在终端(ubuntu 18.04)中使用以下命令通过ping测试来评估一个ISP的质量。

测试打算运行15分钟(-w 900),但是如果互联网连接丢失(即路由器关闭),命令就会停止运行,文本文件也会关闭。
linux bash ubuntu ubuntu-18.04 ping
1个回答
0
投票

有没有办法让命令尝试重新连接并继续测试?

START=$SECONDS
while ((SECONDS-START<15*60)) ; do
    S1=$SECONDS
    sudo ping -i .001 -w 60 -W 899 www.google.com  |
    while read pong; do
        echo "$(date +"%T.%N"): $pong"
    done
    if ((SECONDS-S1<59)) ; then
        echo "Disconnect"
        sleep 1
    fi

done > "test_$(date +"%Y_%m_%d__%H%M").txt"
对分析来说,跟踪这些断开的情况是很重要的。

0
投票

我通过在终端(ubuntu 18.04)中使用以下命令进行ping测试来评估一个ISP的质量:sudo ping -i .001 -w 900 -W 899 www.google.com /serverfault.comquestions503820linux-ping-command-exits-early-due-icmp-host-unreachable。

这是一个可以接受的解决方案。

sudo timeout 900s ping -i .001 www.google.com  |
while read pong; do 
   echo "$(date +"%T.%N"): $pong"
done > "test_$(date +"%Y_%m_%d__%H%M").txt"

正如链接中所说的那样,有一个奇怪的行为 -w 选项,在网络断开后退出ping命令。

这个方案的缺点是会丢失ping统计输出。

© www.soinside.com 2019 - 2024. All rights reserved.