পিং কমান্ডের সাহায্যে আমি কীভাবে একটি সংক্ষিপ্ত সময়সীমা সেট করতে পারি?


49

আমি এমন একটি স্ক্রিপ্ট লেখার চেষ্টা করছি যা আমার ল্যানে সমস্ত হোস্টকে তালিকাভুক্ত করে (সেখানে প্রায় 20 জন) এবং প্রতিটি হোস্টের পাশের পিং স্থিতি লিখছে। আমার কাছে ডিএইচসিপি ইজারা ফাইল রয়েছে, সুতরাং আমার কাছে সমস্ত আইপি রয়েছে (বলুন, 10.0.0.1, 10.0.0.2, ইত্যাদি), আমার কেবল দরকার প্রতিটি হোস্টের পিং স্ট্যাটাস।

সুতরাং, আমার স্ক্রিপ্ট প্রতিটি হোস্টের জন্য একটি একক পিং চালু করে:

ping -c 1 10.0.0.1

দুর্ভাগ্যক্রমে, যখন কোনও হোস্ট অফলাইনে থাকে, পিং সময়সীমা শেষ করতে অনেক সময় নেয়। আমি পরীক্ষা করে দেখেছি man ping, টাইমআউট বিলম্ব সেট করার জন্য দুটি বিকল্প রয়েছে বলে মনে হচ্ছে: -w deadlineএবং -W timeout। আমি মনে করি আমি পরবর্তীকালে আগ্রহী।

সুতরাং আমি এটি চেষ্টা করেছি:

ping -c 1 -W 1 10.0.0.1

তবে অফলাইন হোস্টের জন্য এক সেকেন্ড অপেক্ষা করা এখনও অনেক দীর্ঘ। আমি এটিকে এক সেকেন্ডের নীচে সেট করার চেষ্টা করেছি, তবে এটি প্যারামিটারটিকে মোটেই বিবেচনা করবে বলে মনে হচ্ছে না:

ping -c 1 -W 0.1 10.0.0.1  # timeout option is ignored, apparently

টাইমআউটটি কি কোনও কম মূল্যে সেট করার কোনও উপায় আছে? যদি না হয়, কোন বিকল্প আছে?

সম্পাদন করা

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

সম্পাদনা # 2

আমি fpingসমাধানটি গ্রহণ করেছি (অন্য সমস্ত উত্তরের জন্য ধন্যবাদ) এই কমান্ডটি আমি যা খুঁজছিলাম ঠিক তাই করে:

fping -c1 -t500 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4

এই কমান্ডটি কমপক্ষে 500 মিমি সময় নেয় এবং আমাকে একবারে সমস্ত হোস্টের পিং স্ট্যাটাস দেয়:

10.0.0.1 : [0], 84 bytes, 5.71 ms (5.71 avg, 0% loss)
10.0.0.2 : [0], 84 bytes, 7.95 ms (7.95 avg, 0% loss)
10.0.0.3 : [0], 84 bytes, 16.1 ms (16.1 avg, 0% loss)
10.0.0.4 : [0], 84 bytes, 48.0 ms (48.0 avg, 0% loss)

10.0.0.1 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 5.71/5.71/5.71
10.0.0.2 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 7.95/7.95/7.95
10.0.0.3 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 16.1/16.1/16.1
10.0.0.4 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 48.0/48.0/48.0

ডেবিয়ান লেনিতে, ইনস্টলেশনটি নগণ্য:

aptitude update
aptitude install fping

উত্তর:


41

আপনি যে স্টক পিং ব্যবহার করছেন তার চেয়ে ফপিং ভাল সরঞ্জাম হতে পারে। আপনি কোন ওএস চালু করছেন?

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

1
দুর্দান্ত কাজ করে, ধন্যবাদ, এটি আমি খুঁজছিলাম। এই কমান্ডটি কাজটি জরিমানা করে: fping -c1 -t500 10.0.0.1 10.0.0.2 10.0.0.3 ... পুরো জিনিসটি অর্ধেক সেকেন্ড স্থায়ী হয় এবং আমি সমস্ত হোস্টের জন্য ফলাফল একবারে পাই get দুর্দান্ত সরঞ্জাম :-))
MiniQuark

37

জড়িত এমন কোনও সমাধান খুঁজছেন এমন লোকদের জন্য ping, -iস্যুইচটি ব্যবহার করুন ।

ping -i 0.2 www.google.com

অথবা, আপনি যদি 0.1 ব্যবহার করতে চান তবে আপনাকে এটি রুট হিসাবে চালানো দরকার

sudo ping -i 0.1 www.google.com

অতিরিক্ত ইউটিলিটিগুলি ডাউনলোড করার দরকার নেই।


4
আমার কাছ থেকে +1 "পিং টাইমআউট" গুগল করার সময় এটিই প্রথম ফলাফল এবং আমি ঠিক এটিই সন্ধান করছিলাম।
স্টিভেন জেফরিজ 21

@ স্টিভেন জেফরিস একই!
লু

1
মৃত হোস্টের ক্ষেত্রে এই দ্রবণটি প্রায় 1 সেকেন্ডের পরে তার প্রথম দরকারী আউটপুট প্রিন্ট করবে। @ মার্সেলবার্কার্ড ইতিমধ্যে উল্লিখিত হিসাবে এটি অবশ্যই ভুল উত্তর।
ভিক্টর ইয়ারেমা

1
এই সমাধানটির সমস্যাটি হ'ল -i 0.1 100ms অপেক্ষা করবে না, তবে বেশি সময় ধরে, 100 মিমিরও বেশি সময় নেয় এমন পিংসের জন্য, সময়টি বন্ধ করে দেওয়া।
ল্ল্যামেজেডন

2
এই উত্তরটি ভুল - এটি pingপ্রতিক্রিয়াটির জন্য কতক্ষণ অপেক্ষা করবে তা পরিবর্তন করে না - বরং এটি কেবল পরপর পিংসগুলি আরও দ্রুত প্রেরণ করে ....
এমটিএল দেব

21

আপনি timeoutউবুন্টু / ডেবিয়ান কমান্ডের সাহায্যে একটি সংক্ষিপ্ত সময়সীমা সেট করতে পারেন :

timeout 0.2 ping -c1 fqdn || { do_work }

ভাল উত্তর! আমি এখন করেছি: টাইমআউট 1 পিং -c 1
টেস্ট ডটকম

1
আমার টাইমআউটটির সংস্করণটি কেবল 1 সেকেন্ড গ্রহণ করে। timeout (GNU coreutils) 8.4
slm

আমি এই সমাধানটি পছন্দ করি, এটি অন্যান্য সমস্ত কমান্ডে প্রয়োগ করা যেতে পারে
ডটদিনহোকোক

@ এসএলএম, এটি আশ্চর্যজনক যে আপনার সংস্করণটি এক সেকেন্ডেরও কম সমর্থন করে না। এটি আমার পক্ষে কাজ করে: DURATION is a floating point number with an optional suffix: 's' for seconds (the default),... আমার মামলার man timeoutরিপোর্টে GNU coreutils 8.26। বিডাব্লুটি, আমি উবুন্টু 17.04 ব্যবহার করছি।
ভিক্টর ইয়ারেমা

এটি আসলে একমাত্র কাজ যা যদি আপনি টাইমআউট হ্রাস করতে চান (হোস্ট প্রতিক্রিয়া জানায় না) ... আপনাকে গণিতটি করতে হবে যদিও: পিন কমান্ডের "-c" * "-i" এর চেয়ে বেশি সময়সীমা অবশ্যই বড় হতে হবে
মার্কি

13

আমি এই কাজের জন্য nmap ব্যবহার করা হবে।

nmap -sP --max-retries=1 --host-timeout=1500ms 10.0.0.1

এই সম্পর্কে আরও তথ্যের জন্য nmap ডকুমেন্টেশন দেখুন ।


শুভ কল .. এটি করার জন্য এটি "দুর্দান্ত" উপায়: ডি +1
আরেনস্টার

হাই, আমি এটি চেষ্টা করেছি, তবে আমি নিম্নলিখিত ত্রুটি বার্তাটি পেয়েছি: "- আপনি 's', 'এম', 'এইচ', বা 'ডি' যোগ করে যোগ্যতা অর্জন না করে মিলি সেকেন্ডে হোস্ট-টাইমআউট নির্দিষ্ট করা হয় The অবশ্যই 1500 মিলিসেকেন্ডের বেশি হতে হবে "।
MiniQuark

আমি মনে করি সমস্যাটি সুস্পষ্ট, সময়সীমা 1500 মিমি থেকে কম হতে পারে না। আমার মনে হয় যে সমান্তরালতাটি বিবেচনা করে আপনার এনএম্যাপ বিকল্পগুলির সন্ধান করা উচিত।
গতিময়

এটি কেবল একটি অনুরোধ প্রেরণ করে বলে মনে হচ্ছে। আমি ক্রমাগত ত্রুটি সনাক্তকরণের সন্ধান করছি, আমি এখানে গুগলিং "পিং মিলিসেকেন্ড টাইমআউট" পেয়েছি, এনএমএপ কি উবুন্টু পিংয়ের মতো ইনফিনি-পিংস সরবরাহ করে?
থোরস্মমনার

একটি দ্বিতীয় কম কিছু সময় সমাপ্ত সেটিং @ Victor-bjelkholm উত্তর হিসেবে একটি ছবি তৈরী ব্যবহারকারী ব্যবহার জড়িত হবে
thrau

4

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

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

আপনি যে কোন সমাধান তৈরি করেন, যদি আপনার নেটওয়ার্ক ব্যস্ত থাকে তবে কিছু প্রকারের Qos প্রয়োগের কথা চিন্তা করুন, যাতে আপনার মনিটরিং প্যাকেটগুলি নেটওয়ার্ককে অগ্রাধিকার দেয়, নেটওয়ার্কের ভিড়ের কারণে পরিমাপের প্যাকেটগুলি হারাতে পারে ভ্রান্ত অ্যালার্ম। যদি প্যাকেটগুলি পর্যবেক্ষণের জন্য কুইস ব্যবহার করে থাকেন তবে আপনাকে নেটওয়ার্কের ব্যবহার সম্পর্কে ডেটা সংগ্রহ করার বিষয়ে ভাবতে হবে।

সুতরাং, আপনি নিজের নজরদারি সমাধানটিকে যতটা জটিল বা আপনার পছন্দ মতো সহজ করতে পারেন। আমরা দেখতে পাই এমনকি সর্বাধিক প্রাথমিক পর্যবেক্ষণ ব্যবস্থা সঠিক দিকের একটি পদক্ষেপ, কমপক্ষে কিছু প্রশাসক মেশিনগুলিতে নজর রাখছেন :-)।

শুভকামনা!


3

@ জর্ডন-বেডওয়েলের একটি দুর্দান্ত পরামর্শ রয়েছে।

@ ল্যাজ্লো-ভালকো https://stackoverflow.com/questions/20359487/why-does-ping-not-timeout-in-linux ব্যাখ্যা করে যে আইপ ঠিকানা নির্ধারণের পরে কেবল পিং সময়সীমা শুরু হয়। আপনি যদি ডিএনএস ব্যবহার করেন এবং আপনার ওয়ার্কস্টেশন অফলাইনে থাকে তবে পিং আইপি ঠিকানা নির্ধারণ করতে পারে না এবং তাই ফলস্বরূপ মিথ্যা ফেরার আগে প্রায় 20 ডিগ্রি ডিফল্ট অপেক্ষা করতে দেখা যায়।

লিনাক্স 'টাইমআউট' সরঞ্জামটি ব্যবহার করা ডোমেন নামের সাথে পিং চালানোর সময় আরও নিয়ন্ত্রণ সরবরাহ করে।

ধন্যবাদ বন্ধুরা


2

উইন্ডোজ এবং ডেবিয়ান উভয় -W সুইচ ব্যবহার করুন ।

এটি মেশিনে আদৌ সাড়া দেয় কিনা তা যাচাই করার একটি দ্রুত উপায়, ধরে নিলে এটি সময় কম সুনির্দিষ্ট পরিমাণে সাড়া দেয়।

ping -w 1 192.168.80.105

PING 192.168.80.105 (192.168.80.105) 56(84) bytes of data.

--- 192.168.80.105 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms

1

আপনি যদি সুরক্ষা অ্যালার্মগুলি ট্রিগার না করেই আপনার সাবনেট (বা এর অংশ) স্ক্যান করতে পারেন এবং কিছুটা অতিরিক্ত ডেটা মনে না করেন তবে অ্যাংরি আইপি স্ক্যানার দ্রুত, বিনামূল্যে, আপনাকে স্থিতি অনুসারে বাছাই করতে ক্লিক করতে দেয় এবং আরও বিশদ তথ্য সরবরাহ করতে পারে ।


0

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


1
আমার ধারণা এটি কার্যকর হবে তবে আমি একটি সহজ সমাধান খুঁজছিলাম। যাই হোক ধন্যবাদ.
MiniQuark

এই পদ্ধতিটি স্কেল করে না।
সিনিটেক

0

সময়সীমা হ'ল একটি পূর্ণসংখ্যা মান যা প্যাকেটটি কতদূর এবং কত দিন প্রেরণ করা যায় তা নির্দেশ করে। 1 এর নীচে মানগুলি অর্থহীন। 1 এর মান নির্দেশ করে যে আপনি কেবল আশেপাশের প্রতিবেশীদের পিং করছেন।

জিনিসগুলির গতি বাড়ানোর একমাত্র উপায় হ'ল ব্যাকগ্রাউন্ড চেক চালানো এবং ফলাফলগুলি সংগ্রহ করা। নাগিওসের মতো সরঞ্জামগুলি এটি করে।


1
আমি দুঃখিত, তবে আমি সত্যিই এটি সত্য বলে মনে করি না। ম্যান পেজটি বেশ পরিষ্কার যে -W "প্রতিক্রিয়া অপেক্ষা করার সময়, সেকেন্ডে" নির্দিষ্ট করে; এটি মাত্রাবিহীন নয় এবং যদিও পিং 1 এর নীচে মানকে সম্মান করে না (সুতরাং প্রশ্ন) উপ-দ্বিতীয় সময়সীমা অর্থহীন নয়। যদি আপনি আমাকে ক্ষমা করেন তবে আপনি বিভ্রান্ত হয়ে পড়তে পারেন -W, -T পরে, আইপি টিটিএল (হপ কাউন্ট) ক্ষেত্রটি নির্ধারণ করছেন যা আপনার বর্ণনা অনুসারে আচরণ করে এবং যেখানে নীচের মানগুলি সত্যই অর্থহীন।
ম্যাডহ্যাটার

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

0

আপনি এই জাতীয় কিছু চেষ্টা করতে পারেন। তবে এটি চালাতে 15 মিনিট সময় নেয়।

a=258
while [ $a -ge 1 ]
do
    echo "10.0.0.$a"
    sudo ping -i 0.1 -c 1 "10.0.0.$a">>/home/$USER/output.log
   a=`expr $a - 1`
done
cat /home/$USER/output.log|grep -i "icmp_req=1"
cat /dev/null>/home/$USER/output.log

মনে হচ্ছে nmapকাজের জন্য সঠিক হাতিয়ার হবে।
ক্যাস্পারড


-1

পিংয়ের [-t টাইমআউট] এবং [-W ওয়েটটাইম] বিকল্প রয়েছে যাতে আপনি এটি করতে পারেন:

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