0 votos

¿Por qué Xargs no ejecuta un comando por línea para este caso de uso?

Mi tarea es hacer ping a cada EC2 servidor que esté 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"

Se emite el derecho de salida, pero no es llamar xargs por 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 por escrito de cada paso es:

  1. Ejecutar netstat con el -W bandera para obtener completa de los nombres de dominio y no a corto nombres de host
  2. grep de ec2
  3. cut el resultado para obtener el nombre de host de la columna
  4. sort únicos de nombres de host
  5. cut el nombre de host de nuevo para colocar el número de puerto desde el final por ejemplo ec2-1-2-3.amazon.com.80 -> ec2-1-2-3.amazon.com
  6. xargs la salida a ping cada host diez veces

Creo que tengo un problema con el OS X de la variante de xargs debido a que la tubería de salida igual a wc -l muestra de 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 xargs aspecto aquí. Que es la única parte de esta tarea, que no es al parecer de trabajo.

1voto

Zico Arch Puntos 36

Lo solucioné yo mismo con:

``

Proporciona el esperado ocho llamadas a `` , uno para cada host encontrado.

Yo creo que esta solución funciona porque el `` bandera lo limita a una línea por comando.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X