غير قادر على مقارنة أوقات Ping عند الطيران

StackOverflow https://stackoverflow.com/questions/725269

  •  05-09-2019
  •  | 
  •  

سؤال

حاولت الأمر التالي دون جدوى

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

هل هناك أي طريقة للحصول على مقارنة في الوقت الفعلي بين أوقات Ping؟

هل كانت مفيدة؟

المحلول

عادة ما أفتح فقط اثنين من Xterms جنبا إلى جنب وتشغيل بينغ في كل منهما. أو في محطة واحدة "Ping Host1 & Ping Host2 &"

سوف يعطيك فينغ آيون الكمون إلى قائمة المضيفين في تشغيل واحد. حتى تتمكن فقط من القيام: شاهد فينغ - حيا www.yahoo.com www.kernel.org

لم يشاهد الجميع، ولكن يمكنك فقط القيام بذلك (ثم يمكنك رؤية التاريخ): في حين:؛ هل التاريخ fping -e www.google.com www.yahoo.com www.kernel.org؛ النوم 1 منجز

الإخراج لا يزال قبيحا، وليس كل شخص لديه فينغ مثبت إما ..

ها هي بداية إذا كنت ترغب في إنتاج إخراج مظهر لائق. فقط أعطها قائمة من المضيفين كحجج.

#!/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);
}

نصائح أخرى

ماذا عن:

watch 'ping -c 4 www.google.com; echo; ping -c 4 www.yahoo.com'

يعطي النتيجة مثل هذا:

كل 2.0s: Ping -C 4 www.google.com؛ صدى صوت؛ Ping -c 4 www.yahoo.com Tue Apr 7 13:57:47 2009 بينغ www.l.l.google.com (74.125.39.105) 56 (84) بايت البيانات. 64 بايت من fx-in-f105.google.com (74.125.39.105): icmp_seq = 1 ttl = 248 مرة = 8.06 ms 64 bytes من fx-in-f105.google.com (74.125.39.105): ICMP_SEQ = 2 TTL = 248 مرة = 8.47 ms 64 bytes من fx-in-f105.google.com (74.125.39.105): icmp_seq = 3 ttl = 248 مرة = 8.37 ms 64 bytes من fx-f105.google.com (74.125.39.105 .) 8.061 / 8.276 / 8.478 / 0.196 MS بينغ www-real.wa1.b.yahoo.com (87.248.113.14) 56 (84) بايت من البيانات. 64 بايت من f1.us.www.vip.ird.yahoo.com (87.248.113.14): ICMP_SEQ = 1 TTL = 56 مرة = 43.3 مللي ثانية 64 بايت من f1.us.www.vip.ird.yahoo.com (87.248 .113.14): icmp_seq = 2 ttl = 56 مرة = 44.3 ms 64 bytes من f1.us.www.vip.ider.yahoo.com (87.248.113.14): ICMP_SEQ = 3 TTL = 56 مرة = 42.4 MS 64 bytes من F1 .us.ww.vip.ird.yahoo.com (87.248.113.14): ICMP_SEQ = 4 TTL = 56 مرة = 43.0 MS --- www-real.wa1.b.yahoo.com إحصائيات بينغ --- 4 حزم نقل ، 4 تلقى، 0٪ من فقدان الحزمة، الوقت 2999ms RTT Min / AVG / MAX / MDEV = 42.422 / 43.277 / 44.301 / 0.728 MS

هل تحتاج إلى طرح أوقات Ping؟ هل يجب أن تكون جنبا إلى جنب (مزعج بعض الشيء)؟ ما هو تنسيق الإخراج المثالي الخاص بك؟

يمكنك القيام بذلك باستخدام Perl / Python / Php / Otherlang ووقت الوقت الذي يستغرقه فتح اتصال ليقول منفذ 80 على سبيل المثال. يمكنك تخزين هذا في متغير ثم استخدم هذا للتحليل الرياضي.

شيء مثل هذا في رمز PSuDo:

$site1_start = get_timestamp();
$sock = opensocket($someAddress,$required_port);
if($sock) { $sock->close(); };
$site1_end = get_timestamp();
$site1_round_trip = $t2 - $t1

$site2_start = get_timestamp();
$sock = opensocket($someAddress);
if($sock) { $sock->close(); };
$site2_end = get_timestamp();
$site2_round_trip = $t2 - $t1

// now we can perform some stuff on the round trips
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top