লিনাক্স পিং: সময় প্রদর্শন করুন


17

আউটপুট বাদ দেওয়ার পরিবর্তে অনুরোধগুলি 'টাইম আউট' দেখানোর জন্য আমি কীভাবে লিনাক্স পিং করতে পারি?

উইন্ডোজ সংস্করণ পিং এর মত।


আপনি কিভাবে সময়সীমা প্রদর্শন করবেন না ?
মাইকেল

উত্তর:


12

ফপিং আমার পক্ষে কাজ করে নি ... আমার ক্ষেত্রে, বেশিরভাগ সময় আমি এটি দেখতে চাই মূলত সার্ভার রিবুট করার সময় ... এটি উইন্ডোজে খুব সুন্দর কাজ করে ...

এতে আমাকে সহায়তা করতে আমি একটি সহজ স্ক্রিপ্ট (@entropo উত্তর প্রসারিত) তৈরি করি যা এই প্রশ্নের উত্তর দিতে সহায়তা করতে পারে:

https://gist.github.com/brunobraga/7259197

#!/bin/bash

host=$1

if [ -z $host ]; then
    echo "Usage: `basename $0` [HOST]"
    exit 1
fi

while :; do
    result=`ping -W 1 -c 1 $host | grep 'bytes from '`
    if [ $? -gt 0 ]; then
        echo -e "`date +'%Y/%m/%d %H:%M:%S'` - host $host is \033[0;31mdown\033[0m"
    else
         echo -e "`date +'%Y/%m/%d %H:%M:%S'` - host $host is \033[0;32mok\033[0m -`echo $result | cut -d ':' -f 2`"
        sleep 1 # avoid ping rain
    fi
done

এবং ব্যবহার এমন কিছু:

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


আপনি দয়া করে প্যাকেট ক্ষতির শতাংশের প্রতিবেদন করতে এবং প্রতিটি লাইনে গুনতে সংশোধন করতে পারেন?
পোল হ্যালেন

21

আমি খুঁজে পাওয়া সবচেয়ে ভাল জিনিসটি ছিল- ও পতাকা ব্যবহার করা (নোট করুন যে এটি সমস্ত ডিস্ট্রোজে কাজ করে না - লিনাক্স মিন্ট 17.1 রেবেকা আইপুটিলস-পিং 3: 20121221-4ubuntu1.1 ব্যবহার করে)

$ ping -O 10.10.5.1

64 bytes from 10.10.5.1: icmp_seq=53 ttl=245 time=460 ms
no answer yet for icmp_seq=54
64 bytes from 10.10.5.1: icmp_seq=55 ttl=245 time=265 ms
64 bytes from 10.10.5.1: icmp_seq=56 ttl=245 time=480 ms
no answer yet for icmp_seq=57
64 bytes from 10.10.5.1: icmp_seq=58 ttl=245 time=348 ms
64 bytes from 10.10.5.1: icmp_seq=59 ttl=245 time=515 ms
no answer yet for icmp_seq=60
64 bytes from 10.10.5.1: icmp_seq=61 ttl=245 time=320 ms
64 bytes from 10.10.5.1: icmp_seq=62 ttl=245 time=537 ms

ম্যান পৃষ্ঠা থেকে:

-O Report outstanding ICMP ECHO reply before sending next packet. This is useful together with the timestamp -D to log output to a diagnostic file and search for missing answers.


হাই স্কোয়া, সুপার ব্যবহারকারীকে স্বাগতম এবং এই প্রশ্নের উত্তরের জন্য আপনাকে ধন্যবাদ! এটি সংস্করণের উপর নির্ভরশীল বলে মনে হয় ping; ডেবিয়ান হুইজি তে আমি " ping: invalid option -- 'O'" পাই , তবে জেসির উপর এটি আপনার নোট হিসাবে কাজ করে। আপনি এই তথ্য অন্তর্ভুক্ত আপনার উত্তর আপডেট করতে ইচ্ছুক হতে পারে। (আমি আউটপুট এবং
ম্যানপেজ

5

কোনও হোস্ট শেল স্ক্রিপ্টগুলিতে রয়েছে কিনা তা দেখার জন্য আমি যখন পিং ব্যবহার করি, তখন আমি এই জাতীয় কিছু করি:

ping -W 1 -c 1 $HOST 2>&1 > /dev/null || (echo -n "dead!"; false) && command-that-needs-host-to-be-up

মূলত, একটি আইসিএমপি প্রেরণ করে যে কোনও আউটপুট ছাড়াই একটি সেকেন্ডে সময় বেরিয়ে যায় এবং প্রস্থান কোডটি ব্যবহার করে পরবর্তী ক্রিয়াটি প্রবেশ করতে পারে।


2

সাধারণের pingপক্ষে এটি করার কোনও উপায় নেই । আপনি যদি কিছু স্ক্রিপ্ট করার চেষ্টা করছেন তবে আপনার কাছে কিছু বিকল্প রয়েছে:

ping -c 2 <ip>
RESULT=$?
echo $RESULT
1

পিং ব্যর্থ হলে, $?1 হবে, পিং সফল হলে $?0 হবে।

অন্য বিকল্পটি ব্যবহার করছে fpingযা সিসকোর মতো অনেক কাজ করে ping:

$ fping 200.1.1.1
200.1.1.1 is unreachable
$ fping 192.168.1.1
192.168.1.1 is alive

2

ব্রুনো.ব্রাগা দ্বারা উপরের স্ক্রিপ্টটি ঠিক ঠিক কাজ করে, তবে ব্যক্তিগতভাবে আমি শেল প্রোফাইলে (যেমন। বাশরাক) কোনও ব্যবহারের নাম পছন্দ করি যাতে এটি প্রতিদিনের ব্যবহারের ক্ষেত্রে হতে পারে।

নীচের আমার সমাধানটিও স্বয়ংক্রিয়ভাবে ECHO অনুরোধের ক্রম সংখ্যা গণনা করে:

alias pingt='__pingt() { s=0; while :; do s=$(($s+1)); result=$(ping $1 -c1 -W1 |/bin/grep from) && echo "$result, seq=$s" && sleep 1 || echo timeout; done }; __pingt $1'

আউটপুট উদাহরণটি যখন হোস্ট একটি সময়সীমা সহ অস্থির থাকে:

$ pingt 10.10.10.126
64 bytes from 10.10.10.126: icmp_req=1 ttl=64 time=0.235 ms, seq=1
64 bytes from 10.10.10.126: icmp_req=1 ttl=64 time=0.228 ms, seq=2
64 bytes from 10.10.10.126: icmp_req=1 ttl=64 time=0.209 ms, seq=3
64 bytes from 10.10.10.126: icmp_req=1 ttl=64 time=0.241 ms, seq=4
64 bytes from 10.10.10.126: icmp_req=1 ttl=64 time=0.195 ms, seq=5
64 bytes from 10.10.10.126: icmp_req=1 ttl=64 time=0.211 ms, seq=6
timeout
64 bytes from 10.10.10.126: icmp_req=1 ttl=64 time=0.267 ms, seq=8
64 bytes from 10.10.10.126: icmp_req=1 ttl=64 time=0.232 ms, seq=9
^C

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


1

আমি ভয় পাই তবে মানক পিংয়ের সাথে এর জন্য 100% সমাধান নেই। যদিও সাথে ভার্বোজ আউটপুট জন্য পিং -v সময়সীমা শেষ হওয়ার ক্ষেত্রে নীরব থাকবে। আপনি ব্যবহার করার চেষ্টা করতে পারেন:

ping -w 2 192.168.199.1
PING 192.168.199.1 (192.168.199.1) 56(84) bytes of data.

--- 192.168.199.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1007ms

এটি 2 সেকেন্ড পরে পিং থামবে এবং তারপরে সংক্রমণিত প্যাকেটের সংখ্যা এবং প্যাকেটের ক্ষতি দেখায়। আর একটি বিকল্প মিটার ব্যবহার করা হবে


1
nomad@local:~$ fping -l -e 8.8.8.8

8.8.8.8 : [0], 92 bytes, 183 ms (183 avg, 0% loss)
8.8.8.8 : [1], 92 bytes, 61.4 ms (122 avg, 0% loss)
8.8.8.8 : [2], 92 bytes, 164 ms (136 avg, 0% loss)
8.8.8.8 : [3], 92 bytes, 163 ms (143 avg, 0% loss)
8.8.8.8 : [5], 92 bytes, 158 ms (146 avg, 16% loss)
8.8.8.8 : [6], 92 bytes, 122 ms (142 avg, 14% loss)
8.8.8.8 : [7], 92 bytes, 134 ms (141 avg, 12% loss)
8.8.8.8 : [8], 92 bytes, 130 ms (140 avg, 11% loss)

nomad@local:~$ fping -version
fping: Version 3.2
fping: comments to david@schweikert.ch

তবে নোট করুন যে কয়েক মিনিটের জন্য দৌড়ানোর পরে ছড়িয়ে ছিটিয়ে থাকা টাইমআউটগুলি মুদ্রিত ক্ষতির উপর শূন্য প্রভাব ফেলে (1000 এর মধ্যে 1 প্যাকেট 0.1% ক্ষতি এবং ফাইপিং 0% মুদ্রণ রাখতে থাকবে)। 18% 19% হয়ে যায় এমন সময়টি ধরার চেয়ে "অনুরোধের সময়সীমা" লক্ষ্য করা খুব বেশি সহজ বলে উল্লেখ করা উচিত নয় (18%
প্রবাহ

fpingভাল, এবং BTW -eযখন প্রয়োজন হয় -lবা -cযুক্ত করা হয় না , কেবল ব্যবহার করতে পারে fping -l 8.8.8.8, আউটপুট একই।
এরিক ওয়াং

0

আমি সত্যিই ব্রুনোর শেল স্ক্রিপ্টটি পছন্দ করি। আমি সমস্ত ব্যর্থতা দিয়ে একটি ফাইল তৈরি করতে একটি লাইন যুক্ত করেছি।

প্রতিধ্বনি date +'%Y/%m/%d %H:%M:%S'- " - হোস্ট $ হোস্টটি হল \ 033 [0; 31 মিমি \ 033 [0 মি" >> >> /lostpacket.txt


0

কিছু স্ক্রিপ্ট না করে

ping -f -i 1 hostname

সুবিধা : স্ট্যান্ডার্ড লিনাক্স কমান্ড - ইনস্টল বা স্ক্রিপ্ট কিছুই।

অসুবিধাগুলি :

  1. সফলভাবে উত্তর দেওয়া প্যাকেটগুলির জন্য কিছুই মুদ্রিত হয়
  2. এটি প্যাকেটগুলির জন্য একটি বিরক্তিকর বীপ তৈরি করে যা সাফল্যের সাথে উত্তর দেওয়া হয়
  3. টাইমআউটগুলির ভিজ্যুয়াল ইঙ্গিতটি যতটা পেতে পারে তত ন্যূনতম (প্যাকেট শেষ হয়ে গেলে একটি ছোট ডট স্ক্রিনে থাকে)।

একটি ন্যূনতম স্ক্রিপ্ট সহ

#!/bin/bash
while :; do
    ping -W1 -c 1 "$@" | grep 'bytes from '
    case $? in
        0 ) sleep 1 ;;
        1 ) echo -e "request timeout" ;;
        * ) exit ;;
    esac
done

অসুবিধাগুলি : আপনি শেষে কোনও পরিসংখ্যান পাবেন না এবং আপনি এই 3 টি পিং বিকল্প ব্যবহার করতে পারবেন না:

  1. -i প্যাকেট প্রেরণের মধ্যে ব্যবধান পরিবর্তন করতে (এটি 1 সেকেন্ডে হার্ডকোডযুক্ত)
  2. -W সময়সীমা পরিবর্তন করতে (এটি 1 সেকেন্ডে হার্ডকোডযুক্ত)
  3. -c এন প্যাকেট প্রেরণের পরে থামাতে

বিটিডাব্লু: লিনাক্স সিএলআই সরঞ্জাম থেকে কার্যত কার্যকারিতাটির এটি একটি অত্যন্ত বিরল উদাহরণ যা আমি মিস করেছি তবে আমি একটি উইন্ডোজ সরঞ্জামে পেয়েছি। মৃত্যুদন্ড কার্যকর করা যা নিয়মকে তারা যেমন বলেছে প্রমাণ করে :-)


0

আপনি যদি উইন্ডোগুলির মতো এবং টাইমস্ট্যাম্পের সাথে অবিচ্ছিন্ন পিং সঞ্চালন করতে চান তবে এটি ব্যবহার করুন। 192.168.0.1আপনার নিজের আইপি ঠিকানা দিয়ে প্রতিস্থাপন নির্দ্বিধায়

while :; do ping -c 1 -t 1 192.168.0.1 > /dev/null && echo "`date` >>> Reply OK" && sleep 1 || echo "`date` >>> Request timed out"; done

উদাহরণ ঠিক আছে উত্তর দিন

[user@Linux ~]$ while :; do ping -c 1 -t 1 192.168.0.1 > /dev/null && echo "`date` >>> Reply OK" && sleep 1 || echo "`date` >>> Request timed out"; done
Wed Jan  3 03:41:49 GMT 2018 >>> Reply OK
Wed Jan  3 03:41:50 GMT 2018 >>> Reply OK
Wed Jan  3 03:41:51 GMT 2018 >>> Reply OK
^Z
[23]+  Stopped                 sleep 1
[user@Linux ~]$

উদাহরণ অনুরোধের সময়সীমা শেষ

[user@Linux ~]$ while :; do ping -c 1 -t 1 192.168.0.254 > /dev/null && echo "`date` >>> Reply OK" && sleep 1 || echo "`date` >>> Request timed out"; done
Wed Jan  3 03:41:36 GMT 2018 >>> Request timed out
Wed Jan  3 03:41:37 GMT 2018 >>> Request timed out
Wed Jan  3 03:41:38 GMT 2018 >>> Request timed out
^Z
[22]+  Stopped                 ping -c 1 -t 1 192.168.0.254 >/dev/null
[user@Linux ~]$ 

0

সাধারণ পিং আসলে আপনাকে সময়সীমা দেখায়। পিংসের মধ্যে থাকা seq = মানটি দেখে আপনি বলতে পারবেন যে কত সময়সীমা শেষ হয়েছে

64 bytes from 192.168.12.46: icmp_seq=8 ttl=62 time=46.7 ms
64 bytes from 192.168.12.46: icmp_seq=11 ttl=62 time=45.3 ms

EG 3 সময় আউট উপরের 2 টি পিংয়ের মধ্যে ঘটেছিল যেহেতু প্রথমটি ছিল প্রথম seq=8এবং দ্বিতীয়টি ছিল seq=11 (9 এবং 10 টাইম আউটস) seq=sequence

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