无法即时比较ping时间 [英] Unable to compare ping times on fly

查看:83
本文介绍了无法即时比较ping时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我未成功尝试以下命令

sdiff <(ping www.nato.int) <(ping www.reuters.com)

是否可以在ping时间之间进行实时比较?

推荐答案

通常,我只是并排打开两个xterm,然后在每个xterm中运行ping.或在一个终端中"ping host1&ping host2&"

Usually I just open two xterms side-by-side and run ping in each. Or in one terminal "ping host1 & ping host2&"

fping -e将使您一次运行即可获得一系列主机的延迟.因此,您可以执行以下操作: 观看fping -e www.google.com www.yahoo.com www.kernel.org

fping -e will give you the latency to a list of hosts in one run. So you can just do: watch fping -e www.google.com www.yahoo.com www.kernel.org

并非每个人都有手表,但是您可以执行此操作(然后您可以查看历史记录): 尽管 :;约会; fping -e www.google.com www.yahoo.com www.kernel.org;睡觉1;完成

Not everyone has watch, but you can just do this (and then you can see the history): while :; do date; fping -e www.google.com www.yahoo.com www.kernel.org; sleep 1; done

输出仍然很难看,并不是每个人都安装了fping.

The output is still ugly, and not everyone has fping installed either..

如果您想产生看起来不错的输出,那么这是一个开始.只要给它一个主机列表作为参数即可.

Here's a start if you want to produce decent looking output. Just give it a list of hosts as arguments.

#!/usr/bin/perl
use strict;
use warnings;
use POSIX;

for(;;) {
    print strftime("%T:", localtime);
    foreach my $host (@ARGV) {
        my $a=`ping -c 1 $host`;
        my $latency;
        if($a =~ /rtt.* =\s+([\d.]+)\//s) {
            $latency=$1;
        } else {
            $latency="(dropped)";
        }
        print "$host:$latency\t";
    }
    print "\n";
    sleep(1);
}

这篇关于无法即时比较ping时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆