কীভাবে "পিং" কমান্ড করবেন তা প্রদর্শনের সময় এবং পিংয়ের তারিখ


39

আমি যখন পিং করি তখন আমার এই প্রদর্শনটি হয়:

> ping -i 4 www.google.fr 
64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=503 ttl=46 time=45.5 ms
.......
.......
64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=508 ttl=46 time=44.9 ms
64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=509 ttl=46 time=45.1 ms

আমি পিং এর আগে সময় চাই

কিছুটা এইরকম:

> (right functions) + ping -i 7 www.google.fr 
mardi 15 mai 2012, 10:29:06 (UTC+0200) - 64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=503 ttl=46 time=45.5 ms
.......
.......
mardi 15 mai 2012, 10:29:13 (UTC+0200) - 64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=508 ttl=46 time=44.9 ms
mardi 15 mai 2012, 10:29:20 (UTC+0200) - 64 bytes from wi-in-f94.1e100.net (173.194.67.94): icmp_seq=509 ttl=46 time=45.1 ms

আপনি কমান্ড লাইনে এটি কীভাবে করবেন (যদি এটি সম্ভব হয়)?


উত্তর:


77

ব্যবহার করুন:

ping www.google.fr | while read pong; do echo "$(date): $pong"; done

আপনি ফলাফলটি এভাবে পাবেন:

এখানে চিত্র বর্ণনা লিখুন


1
বাহ খুব সুন্দর। এবং শেল স্টাফ শিখতে সহায়ক। ধন্যবাদ!
অলিভিয়ার পন্স

সেকেন্ডে আপটাইমping 192.168.70.1 | while read pong; do echo "$(awk '{print $1}' /proc/uptime): $pong"; done
ডিপিএস

16

ping -Dবিকল্পটি ব্যবহার করার আর একটি সম্ভাবনা যা আপনাকে ইউনিক্স সময় হিসাবে টাইমস্ট্যাম্প দেয়।

tilo@t-ubuntu:~$ ping google.com -D
PING google.com (173.194.33.73) 56(84) bytes of data.
[1388886989.442413] 64 bytes from sea09s15-in-f9.1e100.net (173.194.33.73): icmp_req=1 ttl=57 time=11.1 ms
[1388886990.443845] 64 bytes from sea09s15-in-f9.1e100.net (173.194.33.73): icmp_req=2 ttl=57 time=11.0 ms
[1388886991.445200] 64 bytes from sea09s15-in-f9.1e100.net (173.194.33.73): icmp_req=3 ttl=57 time=10.8 ms
[1388886992.446617] 64 bytes from sea09s15-in-f9.1e100.net (173.194.33.73): icmp_req=4 ttl=57 time=10.9 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 10.860/11.005/11.139/0.123 ms
tilo@t-ubuntu:~$ 

সামান্য ভিন্ন বিন্যাস সহ এখানে "আছু" কমান্ডের একটি সংস্করণ:

ping www.google.com -i 10 -c 3000 | while read pong; do echo "$(date +%Y-%m-%d_%H%M%S): $pong"; done >PingTest_2014-01-04.log

এটি আপনাকে পেয়েছে:

2014-01-04_175748: 64 bytes from sea09s16-in-f19.1e100.net (173.194.33.115): icmp_req=13 ttl=57 time=10.5 ms

6

নামক একটি ইউটিলিটি রয়েছে ts, যা স্টিডিন পড়ে, টাইমস্ট্যাম্প যুক্ত করে এবং স্টাডআউটে লেখায়:

me@my-laptop:~$ ping localhost | ts
Nov 08 09:15:41 PING localhost (127.0.0.1) 56(84) bytes of data.
Nov 08 09:15:41 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.060 ms
Nov 08 09:15:42 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.098 ms
Nov 08 09:15:43 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.082 ms
Nov 08 09:15:44 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.091 ms

এটি দিয়ে উবুন্টুতে ইনস্টল করা যেতে পারে ।sudo apt install moreutils


1
+1 ঠিক একইভাবে উবুন্টুতে (কমপক্ষে 16.04) টিএস ইনস্টল করা হয়নি, সুতরাং আপনার এটি ইনস্টল করা দরকারapt install moreutils
dmikam

3

আপনি ব্যবহার করতে পারেন gawk(বা awk, যদি আপনার /etc/alternatives/awkপয়েন্টগুলি /usr/bin/gawk):

ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'

এটি আছুর উত্তরের পদ্ধতির অনুরূপ , তবে শেল লুপের পরিবর্তে কল করে যে pingআউটপুটটি পাইপ করা হয়েছে । এই পদ্ধতির মতোই, এটি ব্যতীত কাজ করে , তবে যদি আপনি এন পিংসের পরে পিং স্টপ করতে পাস না করেন এবং আপনি + দিয়ে লুপটি থামান , সাধারণ পরিসংখ্যান মুদ্রণ করবে না।gawkdate-c-c nCtrlCping

ek@Io:~$ ping -c 4 www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:09:51 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:09:51 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=327 ms
Tue 03 Jan 2017 10:09:52 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=302 ms
Tue 03 Jan 2017 10:09:53 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=282 ms
Tue 03 Jan 2017 10:09:54 AM EST: 64 bytes from sea15s08-in-f3.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=349 ms
Tue 03 Jan 2017 10:09:54 AM EST:
Tue 03 Jan 2017 10:09:54 AM EST: --- www.google.fr ping statistics ---
Tue 03 Jan 2017 10:09:54 AM EST: 4 packets transmitted, 4 received, 0% packet loss, time 3003ms
Tue 03 Jan 2017 10:09:54 AM EST: rtt min/avg/max/mdev = 282.035/315.227/349.166/25.398 ms
ek@Io:~$ ping www.google.fr | gawk '{print strftime("%c: ") $0}'
Tue 03 Jan 2017 10:10:35 AM EST: PING www.google.fr (216.58.193.99) 56(84) bytes of data.
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=1 ttl=51 time=305 ms
Tue 03 Jan 2017 10:10:35 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=2 ttl=51 time=365 ms
Tue 03 Jan 2017 10:10:36 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=3 ttl=51 time=390 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=4 ttl=51 time=824 ms
Tue 03 Jan 2017 10:10:38 AM EST: 64 bytes from sea15s08-in-f99.1e100.net (216.58.193.99): icmp_seq=5 ttl=51 time=287 ms
^C

pingএর আউটপুট পাইপ করা হয় gawkবা শেল whileলুপ হয় কিনা তা ঘটে । কারণ পাইপ ডান দিকে যে কমান্ড বদলে pingপায় SIGINT যখন Ctrl+ + Cচাপা হয়, এবং pingসমাপ্ত হওয়ার আগে পরিসংখ্যান প্রিন্ট করতে জানে না।

যদি আপনি কোনও পাইপের বাম দিকে চালিত pingনা -cহয়ে থাকেন (উপরে দেখানো হয়েছে) এবং আপনি এটি এমনভাবে শেষ করতে চান যে এটি এখনও পরিসংখ্যানগুলি মুদ্রণ করে, তবে টার্মিনালটি যেখানে এটি চলছে সেখানে Ctrl+ চাপার পরিবর্তে Cআপনি চালাতে পারেন অন্য টার্মিনাল থেকে, কমান্ডের প্রসেস আইডির পরিবর্তে । আপনি যদি কেবলমাত্র একটি উদাহরণ চালাচ্ছেন তবে আপনি সহজভাবে ব্যবহার করতে পারেন ।kill -INT PIDPIDpingpingkillall -INT ping

বিকল্পভাবে, আপনি pingপাইপের বাম দিকে কমান্ডটি একটি শেল চালিত কমান্ডের সাহায্যে প্রতিস্থাপন করতে পারেন, সেই শেলের প্রসেস আইডি প্রতিবেদন করেন এবং তারপরে সেই শেলটি প্রতিস্থাপন করে ping(যার ফলে একই পিআইডি থাকে):

sh -c 'echo $$; exec ping www.google.fr' | gawk '{print strftime("%c: ") $0}'

তারপরে আউটপুট প্রথম লাইন, pingকমান্ডের প্রসেস আইডি প্রদর্শন করবে (যা প্রতিটি সময় সাধারণত পৃথক হবে)। এটি দেখতে এইরকম লাগবে তবে ভিন্ন সময় এবং তারিখ এবং সম্ভবত একটি আলাদা প্রক্রিয়া আইডি সহ:

Tue 20 Mar 2018 12:11:13 PM EDT: 7557

তারপরে, অন্য টার্মিনাল থেকে, আপনি চালিত করতে পারেন, আপনি যে প্রকৃত প্রসেস আইডি দেখেছেন তার kill -INT 7557পরিবর্তে কমান্ডটি এমনভাবে 7557শেষ করতে pingপারেন যাতে এটি পরিসংখ্যান মুদ্রণের কারণ হতে পারে।

(যদি আপনি নিজের শেলের কাজ নিয়ন্ত্রণের বৈশিষ্ট্যগুলি গ্রহণ করেন, তবে আপনি একই টার্মিনালের মধ্যেও এটি অর্জন করতে পারেন But তবে আপনি যদি টার্মিনালে কোনও অতিরিক্ত বহির্মুখী অংশ সরিয়ে না দিয়ে যদি টার্মিনাল থেকে টেক্সট অনুলিপি করতে চান তবে, আপনি pingএকটি পৃথক টার্মিনাল থেকে সমাপ্ত করা উচিত ।)

আরও পড়া:


পিনে প্রথমে সিটিআরএল + সি পাঠানোর কোনও উপায় আছে?
atti

1
@ অট্টি হ্যাঁ, আপনি বিশেষত ব্যবহার করে বা প্রক্রিয়াটিতে প্রেরণে SIGINT(যা সিটিআরএল + সি চাপায়) প্রেরণ করতে পারেন । আমি এই উত্তরটি বিশদ সহ প্রসারিত করেছি। pingkillkillall
এলিয়াহ কাগন

অ্যাজকের দুর্দান্ত ব্যবহার। +1
রিপট

0
ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"'

যদি আপনার ফাইলটিতে এটি সংরক্ষণে আগ্রহী হয় তবে টার্মিনালে নীচের কমান্ডটি টাইপ করুন

ping google.in | xargs -n1 -i bash -c 'echo `date +"%Y-%m-%d %H:%M:%S"`" {}"' >> "/home/name_of_your_computer/Desktop/Ping_Test.txt"

আপনার কোনও পাঠ্য ফাইল তৈরি করার দরকার নেই, এটি স্বয়ংক্রিয়ভাবে হয়ে যাবে

Ping_Test.txt

2018-04-19 15:35:53 PING google.in (216.58.203.164) 56(84) bytes of data.
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=1 ttl=57 time=23.0 ms
2018-04-19 15:35:53 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=2 ttl=57 time=38.8 ms
2018-04-19 15:35:54 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=3 ttl=57 time=32.6 ms
2018-04-19 15:35:55 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=4 ttl=57 time=22.2 ms
2018-04-19 15:35:56 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=5 ttl=57 time=22.1 ms
2018-04-19 15:35:59 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=7 ttl=57 time=23.6 ms
2018-04-19 15:36:00 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=8 ttl=57 time=22.6 ms
2018-04-19 15:36:01 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=9 ttl=57 time=22.3 ms
2018-04-19 15:36:02 64 bytes from bom07s11-in-f4.1e100.net (216.58.203.164): icmp_seq=10 ttl=57 time=26.3 ms

-1

(ধারণাগুলির জন্য আছু এবং এলিয়াহ কাগানকে ধন্যবাদ) এর উপায় আছে

  • pingআউটপুট সময় যোগ করুন
  • পাদটীকা রাখুন ping
  • এবং দিয়ে পুরো নির্মাণটি সমাপ্ত করুন ctrl+c

এটি করার জন্য কমান্ডের ডান অংশটি (পাইপের পরে) SIGINTব্যবহার করা উপেক্ষা করার নির্দেশ দেওয়া উচিত trap "" INT:

$ ping www.google.fr | bash -c 'trap "" INT; awk "{print strftime(\"%c - \") \$0}"'  
lun 26 Mar 2018 22:05:08 +0300 - PING www.google.fr (173.194.73.94) 56(84) bytes of data.
lun 26 Mar 2018 22:05:08 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=1 ttl=47 time=19.6 ms
lun 26 Mar 2018 22:05:09 +0300 - 64 bytes from lq-in-f94.1e100.net (173.194.73.94): icmp_seq=2 ttl=47 time=20.1 ms
^Clun 26 Mar 2018 22:05:09 +0300 - 
lun 26 Mar 2018 22:05:09 +0300 - --- www.google.fr ping statistics ---
lun 26 Mar 2018 22:05:09 +0300 - 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
lun 26 Mar 2018 22:05:09 +0300 - rtt min/avg/max/mdev = 19.619/19.866/20.114/0.284 ms
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.