पिंग प्रतिस्थापन जो वास्तविक समय दिखाता है


9

क्या एक पिंग रिप्लेसमेंट है जो राउंड ट्रिप टाइम और सीक्वेंस नंबर के अलावा सिस्टम की तारीख / समय प्रदर्शित करेगा? मैं लिनक्स पर चलने वाले एक उपकरण को पसंद करूंगा, लेकिन अगर कोई cli टूल है, तो मैं विंडोज पर चला सकता हूं जो अच्छा भी होगा।

वहाँ एक प्रणाली है जो उपयोगकर्ताओं को रिपोर्ट कर रहे हैं रुक-रुक कर रहा है रोक । ऐसा किसी भी सुसंगत समय पर नहीं होता है। मैं रिपोर्टिंग उपयोगकर्ता को यह बताने में सक्षम नहीं हुआ कि किसी भी लॉग में ठहराव को सहसंबद्ध करने के लिए पर्याप्त विशिष्टता के साथ कब हुआ ।

एक टेक ने मेजबान के खिलाफ एक दिन के लिए पिंग को छोड़ दिया। गोल यात्रा समय एक समय में बहुत बड़ा हो गया। मैं यह पता लगाने की कोशिश कर रहा हूं कि जब ऐसा होता है तो मैं नीचे कौन सी लॉग एंट्रीज देख सकता हूं, जो संकरी हो सकती हैं, और संभवत: इस पोज़ को अन्य डेटा के साथ सहसंबंधित करें जो मैं प्रदर्शन लॉग्स, डिवाइस लॉग्स आदि के साथ एकत्र करने में सक्षम हो सकता हूं।

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

जवाबों:


12

आप इस तरह पर्ल का उपयोग करके टाइमस्टैम्प जोड़ सकते हैं:

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

1
यह लगभग बहुत आसान है! :) मैंने लगभग 30 मिनट तक इसके लिए कई अच्छे परिणाम नहीं खोजे, धन्यवाद!
l0c0b0x

12

यहाँ एक बैश समाधान है :)

$ पिंग लोकलहोस्ट | पढ़ी जाने वाली पंक्ति; इको-ई "$ (दिनांक) \ t $ लाइन" करें; किया हुआ
Tue Nov 3 04:46:26 MSK 2009 पिंग लोकलहोस्ट (127.0.0.1) 56 (84) बाइट्स डेटा।
Tue Nov 3 04:46:26 MSK 2009 64 64 बाइट्स लोकलहोस्ट (127.0.0.1) से: icmp_seq = 1 ttl = 64 समय = 0.033 एमएस
Tue Nov 3 04:46:27 MSK 2009 64 64 बाइट्स लोकलहोस्ट (127.0.0.1) से: icmp_seq = 2 ttl = 64 समय = क्राउन एमएस
Tue Nov 3 04:46:28 MSK 2009 64 64 बाइट्स लोकलहोस्ट (127.0.0.1) से: icmp_seq = 3 ttl = 64 समय = 0.046 ms
Tue Nov 3 04:46:29 MSK 2009 64 64 बाइट्स लोकलहोस्ट (127.0.0.1) से: icmp_seq = 4 ttl = 64 समय = 0.046 एमएस

अब, चलिए dateकमांड को थोड़ा और अच्छा आउटपुट देते हैं:

$ पिंग लोकलहोस्ट | पढ़ी जाने वाली पंक्ति; इको-ई "$ (तिथि +% H:% I:% S) \ t $ लाइन"; किया हुआ
04:04:13 पिंग लोकलहोस्ट (127.0.0.1) 56 (84) डेटा के बाइट्स।
04:04:13 लोकलहोस्ट से 64 बाइट्स (127.0.0.1): icmp_seq = 1 ttl = 64 समय = 0.044 एमएस
04:04:14 लोकलहोस्ट से 64 बाइट (127.0.0.1): icmp_seq = 2 ttl = 64 समय = 0.039 एमएस
04:04:15 लोकलहोस्ट से 64 बाइट (127.0.0.1): icmp_seq = 3 ttl = 64 समय = 0.042 एमएस

चीयर्स!


पांडित्य: मैं मूल नहीं कहूंगा क्योंकि तिथि कमांड एक बाहरी आदेश है, और इसे कोसने के लिए नहीं बनाया गया है। मैं केवल इसे इंगित करता हूं क्योंकि यदि आप जागरूक नहीं हैं (आप हो सकते हैं, मुझे नहीं पता), तो यह महसूस करना कि अंतर्निहित बिल्ट-इन हैं और अंतर्निहित कमांड महत्वपूर्ण नहीं हैं। फिर भी एक अच्छा समाधान हालांकि :-)
काइल ब्रांट

1
इसके अलावा जरूरत नहीं है while [ 0 ]:ping google.com | while read line; do echo -e "$(date) $line"; done
काइल ब्रान्ड

5

एक "भारी" विकल्प जो हम विलंबता और पैकेट नुकसान की नियमित जाँच करने के लिए उपयोग करते हैं वह है स्मोकेपिंग । न केवल यह आपको पढ़ने में आसान प्रारूप में थोड़ी अधिक जानकारी देता है, बल्कि आप ICMP पर निर्भर रहने के बजाय HTTP और DNS चेक जैसे काम भी कर सकते हैं। कई फायरवॉल और राउटर ICMP को डी-प्राथमिकता देंगे, जिसके परिणामस्वरूप झूठी विलंबता माप होगी।

Smokeping


महान उपकरण, लिपियों की तुलना में भारी जबकि यह विभिन्न प्रणालियों की निगरानी के लिए सिर्फ सेटअप करने के लिए अच्छा हो सकता है।
sclarson

2

लिनक्स के लिए, इंस्टॉल करें moreutilsजो आपको देगा 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

आइए शेल विनिर्देश का उपयोग करके निर्मित प्रारूप के printfसाथ %(datefmt)Tभारी दुभाषियों को कॉल करने से बचें या dateहर पंक्ति के लिए नई प्रक्रिया करें।

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

पर्ल उदाहरण की तरह, यह भी पाइपिंग द्वारा sed और awk के लिए किया जा सकता है। मुझे लगता tsहै कि सबसे आसान है, लेकिन हमारे सर्वर पर ऐसा नहीं है। बिजीबॉक्स जैसे वातावरण के लिए भी।

यदि आपका कमांड इसका आउटपुट बफ़र करता है, तो आप उपयोग कर सकते हैं unbuffer

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.