Moim ogólnym zadaniem jest pingowanie każdego serwera EC2, z którym się łączę.
Używam tego polecenia, aby to zrobić:
netstat -W | grep ec2 | cut -d " " -f 18 | sort -u | cut -d "." -f 1,2,3,4 | xargs -0 -p "ping -c 10"
Wydaje właściwe wyjście, ale nie dzwoni xargs
Za linię:
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
Pisemne wyjaśnienie każdego kroku to:
- Uruchom netstat za pomocą
-W
flaga, aby uzyskać pełne nazwy FQDN i nie krótkie nazwy hostów grep
dla ec2cut
wyjście, aby uzyskać kolumnę nazwy hostasort
unikalne nazwy hostówcut
nazwa hosta ponownie, aby usunąć numer portu z końca, np.ec2-1-2-3.amazon.com.80
- & gt;ec2-1-2-3.amazon.com
xargs
wyjście doping
każdy gospodarz dziesięć razy
Myślę, że mam problem z wersją systemu OS X xargs
ponieważ przesyłanie tego samego wyjścia do wc -l
pokazuje osiem linii:
netstat -W | grep ec2 | cut -d " " -f 18 | sort -u | cut -d "." -f 1,2,3,4 | wc -l
8
Tutaj skupiam się na aspekcie xargs. To jedyna część tego zadania, która najwyraźniej nie działa.
źródło