मेरा समग्र कार्य मेरे द्वारा किए जाने वाले प्रत्येक EC2 सर्वर को पिंग करना है।
मैं इस आदेश का उपयोग कर रहा हूं कि:
netstat -W | grep ec2 | cut -d " " -f 18 | sort -u | cut -d "." -f 1,2,3,4 | xargs -0 -p "ping -c 10"
यह सही आउटपुट देता है, लेकिन xargsप्रति पंक्ति कॉल नहीं कर रहा है :
ping -c 10 ec2-107-20-154-211.compute-1.amazonaws.com
ec2-107-20-169-186.compute-1.amazonaws.com
ec2-13-58-191-91.us-east-2.compute.amazonaws
ec2-18-204-248-223.compute-1.amazonaws.com
ec2-18-207-50-150.compute-1.amazonaws.com
ec2-18-234-32-173.compute-1.amazonaws.com
ec2-34-192-54-86.compute-1.amazonaws.com
ec2-34-195-196-96.compute-1.amazonaws.com
ec2-34-206-216-146.compute-1.amazonaws.com
?...^C
प्रत्येक चरण की लिखित व्याख्या है:
-Wपूरा FQDNs प्राप्त करने के लिए ध्वज के साथ netstat चलाएं और छोटे होस्टनाम नहींgrepec2 के लिएcutआउटपुट केवल होस्टनाम कॉलम पाने के लिएsortअद्वितीय होस्टनामcuthostname फिर से पोर्टनंबर को ड्रॉप करने के लिए जैसेec2-1-2-3.amazon.com.80->ec2-1-2-3.amazon.comxargspingदस बार प्रत्येक मेजबान के लिए उत्पादन
मुझे लगता है कि मैं ओएस एक्स संस्करण के साथ या तो एक मुद्दे पर चल रहा हूं xargsक्योंकि एक ही आउटपुट को wc -lआठ पंक्तियों को दिखाता है:
netstat -W | grep ec2 | cut -d " " -f 18 | sort -u | cut -d "." -f 1,2,3,4 | wc -l
8
मैं यहाँ xargs पहलू पर ध्यान केंद्रित कर रहा हूँ। यह इस कार्य का एकमात्र हिस्सा है जो स्पष्ट रूप से काम नहीं कर रहा है।