Gerçek zamanlı ping değiştirme


9

Gidiş dönüş saatine ve sıra numarasına ek olarak sistemin tarih / saatini görüntüleyecek bir ping değiştirme var mı? Linux üzerinde çalışan bir aracı tercih ederim, ancak bir cli aracı varsa, Windows üzerinde de çalışabilirim.

Kullanıcıların bildirdiği bir sistem zaman zaman duraklatılıyor . Bu tutarlı bir zamanda gerçekleşmiyor gibi görünüyor. Raporlama kullanıcısının, duraklamayı herhangi bir günlükle ilişkilendirebilecek kadar özgüllükle ne zaman olduğunu söyleyemedim .

Tekniklerden biri, bir gün boyunca ev sahibine karşı çalışan bir ping bıraktı. Gidiş-dönüş süresi bir noktada oldukça büyüktü. Tam olarak ne zaman gerçekleştiğini anlamaya çalışıyorum, bu yüzden hangi günlük girişlerine bakmam gerektiğini daraltabilirim ve muhtemelen bu duraklamayı performans günlükleri, cihaz günlükleri vb. İle toplayabileceğim diğer verilerle ilişkilendirebilirim .

64 bytes from 10.2.4.241: icmp_seq=1825 ttl=64 time=0.321 ms
64 bytes from 10.2.4.241: icmp_seq=1826 ttl=64 time=0.371 ms
64 bytes from 10.2.4.241: icmp_seq=1827 ttl=64 time=13937.638 ms
64 bytes from 10.2.4.241: icmp_seq=1828 ttl=64 time=12937.526 ms
64 bytes from 10.2.4.241: icmp_seq=1829 ttl=64 time=11937.392 ms
64 bytes from 10.2.4.241: icmp_seq=1830 ttl=64 time=10937.275 ms
...
64 bytes from 10.2.4.241: icmp_seq=1840 ttl=64 time=936.073 ms
64 bytes from 10.2.4.241: icmp_seq=1841 ttl=64 time=0.410 ms

Yanıtlar:


12

Bunun gibi perl kullanarak zaman damgaları ekleyebilirsiniz:

ping 127.0.0.1 | perl -pe 'BEGIN {use POSIX;} print strftime("%Y-%m-%d %H:%M:%S ", localtime)'

1
Bu neredeyse çok kolay! :) Çok iyi sonuçlar ile neredeyse 30 dakika boyunca bunu aradım, teşekkürler!
l0c0b0x

12

İşte bir bash çözümü :)

$ ping Instagram Hesabındaki Resim ve Videoları localhost | okunurken satır; echo -e "$ (tarih) \ t $ satırı" yap; tamam
Sal 3 Kas 04:46:26 MSK 2009 PING localhost (127.0.0.1) 56 (84) bayt veri.
Sal 3 Kas 04:46:26 MSK 2009 localhost'tan 64 bayt (127.0.0.1): icmp_seq = 1 ttl = 64 zaman = 0.033 ms
Sal 3 Kas 04:46:27 MSK 2009 localhost'tan 64 bayt (127.0.0.1): icmp_seq = 2 ttl = 64 zaman = 0.040 ms
Sal 3 Kas 04:46:28 MSK 2009 localhost'tan 64 bayt (127.0.0.1): icmp_seq = 3 ttl = 64 zaman = 0.046 ms
Sal 3 Kas 04:46:29 MSK 2009 localhost'tan 64 bayt (127.0.0.1): icmp_seq = 4 ttl = 64 zaman = 0.046 ms

Şimdi, datekomutun biraz daha güzel bir çıktı üretmesini sağlayalım :

$ ping Instagram Hesabındaki Resim ve Videoları localhost | okunurken satır; echo -e "$ (tarih +% H:% I:% S) \ t $ satırı"; tamam
04:04:13 PING localhost (127.0.0.1) 56 (84) bayt veri.
04:04:13 localhost'tan 64 bayt (127.0.0.1): icmp_seq = 1 ttl = 64 zaman = 0.044 ms
04:04:14 localhost'tan 64 bayt (127.0.0.1): icmp_seq = 2 ttl = 64 zaman = 0.039 ms
04:04:15 localhost'tan 64 bayt (127.0.0.1): icmp_seq = 3 ttl = 64 zaman = 0.042 ms

Şerefe!


Bilgiçlik: Date komutu harici bir komut olduğu için bash içine yerleşik olmadığı için native demem. Sadece işaret ediyorum çünkü farkında değilseniz (bilmiyor olabilirsiniz), yerleşik ve yerleşik olmayan komutların olduğunu fark etmek önemlidir. Yine de iyi bir çözüm :-)
Kyle Brandt

1
Ayrıca gerek yok while [ 0 ]:ping google.com | while read line; do echo -e "$(date) $line"; done
Kyle Brandt

5

Gecikme ve paket kaybının düzenli kontrolünü yapmak için kullandığımız "daha ağır" bir seçenek Dumanlama'dır . Size daha kolay okunabilen formatta biraz daha fazla bilgi vermekle kalmaz, ICMP'ye güvenmek yerine HTTP ve DNS kontrolleri gibi şeyler de yapabilirsiniz. Birçok güvenlik duvarı ve yönlendirici, yanlış gecikme ölçümleriyle sonuçlanan ICMP'nin önceliğini kaldırır.

Smokeping


Harika bir araç, komut dosyalarından daha ağır olsa da, sadece çeşitli sistemleri izlemek için kurulum yapmak güzel olabilir.
sclarson

2

Linux için, moreutilssize verecek olanı yükleyin ts.

$ ping nu.nl | ts
jan 29 14:39:51 PING nu.nl (62.69.166.254) 56(84) bytes of data.
jan 29 14:39:51 64 bytes from 62-69-166-254.ptr.as24646.net (62.69.166.254): icmp_seq=1 ttl=247 time=29.8 ms
jan 29 14:39:52 64 bytes from 62-69-166-254.ptr.as24646.net (62.69.166.254): icmp_seq=2 ttl=247 time=29.4 ms

0

Her satır için daha ağır çevirmenleri çağırmaktan veya yeni bir süreç oluşturmaktan kaçınmak printfiçin %(datefmt)Tbiçim spesifikasyonuna sahip kabuğu kullanalım date.

ping -c4 localhost | while read line; do printf "%([%Y-%m-%dT%H:%M:%S])T %s\n" "-1" "$line"; done

Perl örneği gibi, bu da sed ve awk boruları ile yapılabilir. Bence tsen kolayı bu, ama sunucularımızda yok. Meşgul kutusu gibi ortamlar için aynıdır.

Komutunuz çıktısını arabelleğe alırsa kullanabilirsiniz unbuffer.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.