मैं एक स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो मेरे LAN पर सभी होस्ट्स को सूचीबद्ध करती है (उनमें से लगभग 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
इस कमांड को पूरा करने के लिए अधिकतम 500ms लगते हैं, और मुझे एक साथ सभी मेजबानों की पिंग स्थिति प्रदान करता है:
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