পিং প্রতিস্থাপন যা আসল সময় দেখায়


9

এমন কি পিং প্রতিস্থাপন রয়েছে যা রাউন্ড ট্রিপ সময় এবং ক্রম সংখ্যা ছাড়াও সিস্টেমের তারিখ / সময় প্রদর্শন করবে? আমি এমন একটি সরঞ্জাম পছন্দ করব যা লিনাক্সে চলে, তবে যদি একটি ক্লাইপ সরঞ্জাম থাকে তবে আমি উইন্ডোতে চালাতে পারি যা খুব ভাল।

এমন একটি সিস্টেম রয়েছে যা ব্যবহারকারীরা অন্তর্বর্তী বিরতিতে প্রতিবেদন করছেন । এটি কোনও ধারাবাহিক সময়ে ঘটবে বলে মনে হয় না। কোনও লগের বিরতিতে পারস্পরিক সম্পর্ক স্থাপনের জন্য পর্যাপ্ত নির্দিষ্টতার সাথে কখন এটি হয়েছে তা আমি রিপোর্টিং ব্যবহারকারীকে জানাতে সক্ষম হইনি ।

কোনও একটি প্রযুক্তি এক দিনের জন্য হোস্টের বিরুদ্ধে দৌড়ে একটি পিং রেখেছিল। রাউন্ড ট্রিপ সময়টি এক পর্যায়ে বেশ বড় আকার ধারণ করে। আমি ঠিক কখন এটি ঘটে তা নির্ধারণ করার চেষ্টা করছি যাতে কোন লগ এন্ট্রিগুলিতে আমার সন্ধান করা উচিত তা সংকীর্ণ করতে পারি এবং সম্ভবত এই বিরতি অন্য পার্শ্ববর্তী ডেটার সাথে পারফরম্যান্স লগ, ডিভাইস লগ এবং এই জাতীয় সংগ্রহ করতে পারি।

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

এখানে একটি বাশ সমাধান :)

$ পিং লোকালহোস্ট | পড়ার লাইন; ইকো -e "$ (তারিখ) \ t $ লাইন"; সম্পন্ন
মঙ্গল নভেম্বর 3 04:46:26 এমএসকে ২০০৯ পিং লোকালহোস্ট (127.0.0.1) 56 (84) ডেটা বাইট।
মঙ্গল নভেম্বর 3 04:46:26 এমএসকে ২০০৪ লোকালহোস্ট থেকে (7৪.০.০.১.১) 64৪ বাইট: আইসিএমপি_সেক = 1 টিটিএল = 64 সময় = 0.033 এমএস
মঙ্গল নভেম্বর 3 04:46:27 এমএসকে ২০০৪ লোকালহোস্ট থেকে (7৪.০.০.১.১) 64৪ বাইট: আইসিএমপি_সেক = ২ টিটিএল = time৪ সময় = 0.040 এমএস
মঙ্গল নভেম্বর 3 04:46:28 এমএসকে ২০০৪ লোকালহোস্ট থেকে (7৪.০.০.১.১) 64৪ বাইট: আইসিএমপি_সেক = ৩ টিটিএল = time৪ সময় = 0.046 এমএস
মঙ্গল নভেম্বর 3 04:46:29 এমএসকে ২০০৪ লোকালহোস্ট থেকে (127.0.0.1) 64 বাইট: আইসিএমপি_সেক = 4 টিটিএল = 64 সময় = 0.046 এমএস

এখন, dateকমান্ডটি আরও কিছু সুন্দর আউটপুট তৈরি করা যাক:

$ পিং লোকালহোস্ট | পড়ার লাইন; প্রতিধ্বনি -e "$ (তারিখ +% এইচ:% আমি:% এস) \ t $ লাইন"; সম্পন্ন
04:04:13 পিং লোকহোস্ট (127.0.0.1) 56 (84) ডেটা বাইট।
04:04:13 লোকালহোস্ট (127.0.0.1) থেকে 64 বাইট: আইসিএমপি_সেক = 1 টিটিএল = 64 সময় = 0.044 এমএস
04:04:14 লোকালহোস্ট (127.0.0.1) থেকে 64 বাইট: আইসিএমপি_সেক = 2 টিটিএল = 64 সময় = 0.039 এমএস
04:04:15 লোকালহোস্ট (127.0.0.1) থেকে 64 বাইট: আইসিএমপি_সেক = 3 টিটিএল = 64 সময় = 0.042 এমএস

চিয়ার্স!


পেডেন্টিক: আমি নেটিভ বলতে পারি না কারণ ডেট কমান্ডটি একটি বাহ্যিক আদেশ, এবং বাশে অন্তর্নির্মিত নয়। আমি কেবল এটি উল্লেখ করেছি কারণ যদি আপনি সচেতন না হন (আপনি হতে পারেন, আমি জানি না), উপলব্ধি করে যে সেখানে বিল্ট-ইন রয়েছে এবং অন্তর্নির্মিত কমান্ডগুলি গুরুত্বপূর্ণ নয়। এখনও একটি ভাল সমাধান যদিও :-)
কাইল ব্র্যান্ড্ট

1
এছাড়াও প্রয়োজন নেই while [ 0 ]:ping google.com | while read line; do echo -e "$(date) $line"; done
কাইল ব্র্যান্ড্ট

5

একটি "ভারী" বিকল্প যা আমরা নিয়মিতভাবে লেটেন্সি এবং প্যাকেটের ক্ষতির চেক করতে ব্যবহার করি তা হ'ল ধূমপান । এটি আপনাকে সহজেই ফর্ম্যাট পড়ার পক্ষে আরও কিছু তথ্য দেয় না, আপনি এইচটিটিপি এবং ডিএনএস চেকের মতো আইসিএমপিতে নির্ভর করার পরিবর্তে কিছু করতে পারেন। অনেক ফায়ারওয়াল এবং রাউটারগুলি মিথ্যা বিলম্বিত পরিমাপের ফলে আইসিএমপি-কে ডি-অগ্রাধিকার দেবে।

Smokeping


দুর্দান্ত সরঞ্জাম, যদিও স্ক্রিপ্টগুলির চেয়ে ভারী এটি বিভিন্ন সিস্টেমে পর্যবেক্ষণের জন্য ঠিক সেটআপ করা ভাল।
স্কেলারসন

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)Tdate

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

পার্ল উদাহরণের মত, এটি শেডে ও জোর করেও পাইপিংয়ের মাধ্যমে করা যেতে পারে। আমি মনে করি tsসবচেয়ে সহজ, তবে আমাদের সার্ভারগুলিতে এটি নেই। ব্যস্তবক্সের মতো পরিবেশের ক্ষেত্রেও।

যদি আপনার কমান্ড এর আউটপুট বাফার করে তবে আপনি এটি ব্যবহার করতে পারেন unbuffer

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.