Mi tarea general es hacer ping a cada servidor EC2 al que estoy conectado.
Estoy usando este comando para hacer eso:
netstat -W | grep ec2 | cut -d " " -f 18 | sort -u | cut -d "." -f 1,2,3,4 | xargs -0 -p "ping -c 10"
Produce la salida correcta, pero no llama xargspor línea:
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
La explicación escrita de cada paso es:
- Ejecute netstat con el 
-Windicador para obtener FQDN completos y no nombres de host cortos greppara ec2cutla salida para obtener solo la columna de nombre de hostsortnombres de host únicoscutel nombre de host nuevamente para eliminar el número de puerto desde el final, por ejemplo,ec2-1-2-3.amazon.com.80->ec2-1-2-3.amazon.comxargsla salida apingcada host diez veces
Creo que me encuentro con un problema con cualquiera de las variantes de OS X xargsporque la canalización de la misma salida wc -lmuestra ocho líneas:
netstat -W | grep ec2 | cut -d " " -f 18 | sort -u | cut -d "." -f 1,2,3,4 | wc -l
       8
Me estoy centrando en el aspecto xargs aquí. Esa es la única parte de esta tarea que aparentemente no funciona.
fuente
