Ejecutar solicitudes paralelas utilizando el comando XARGS
El Xargs El comando es un comando en los sistemas operativos de Linux y UNIX que acepta o toma argumentos de la entrada estándar y luego ejecuta un comando para cada argumento. En pocas palabras, el comando XARGS puede tomar la salida de un comando y procesarlo como un argumento de un comando diferente.
Por ejemplo, en el siguiente comando, Xargs toma los argumentos en el lado izquierdo y crea directorios utilizando los nombres de los argumentos.
$ Echo 'África Asia Europa América' | Xargs Mkdir
El comando xargs también se puede usar para ejecutar múltiples solicitudes simultáneamente. Si verifica las páginas de manejo, encontrará una sección que le brinda los argumentos de la línea de comandos como se indica a continuación.
Usando XARGS, intentaremos ordenar la ejecución de múltiples solicitudes de curl al mismo tiempo.
El comando Linux Curl es una utilidad de línea de comandos que se utiliza para la transferencia de archivos. Proporciona soporte para una miríada de protocolos como HTTP, HTTPS, FTP, FTP, SCP, TFTP y muchos más.
Supongamos que desea obtener los encabezados HTTP de un sitio web utilizando el comando curl. Para hacer esto, necesitaría invocar el comando curl con el indicador -i seguido de la URL como se muestra.
$ curl -i "https: // linuxways.neto"
Ahora, acaba de enviar una sola solicitud de curl. Supongamos que desea ejecutar 5 solicitudes paralelas; Cómo haría usted para esto? La solución a esto es usar el comando xargs como se muestra junto con el comando curl.
$ xargs -i % -p 5 curl -i "https: // linuxways.neto" < <(printf '%s\n' 1… 10)
La bandera -p denota el número de solicitudes en paralelo. La sección <(printf '%s\n' 1… 10) Imprime los números 1 - 10 y hace que el comando curl se ejecute 10 veces con 5 solicitudes ejecutadas en paralelo.
Además, puede ejecutar el comando a continuación para lograr el mismo resultado. Al igual que con el ejemplo anterior, el siguiente comando ejecuta el comando curl 10 veces con 5 solicitudes en paralelo.
$ SEQ 1 10 | xargs -n1 -p 5 curl -i "https: // linuxways.neto"
Tomemos otro ejemplo. Supongamos que desea descargar 3 archivos simultáneamente usando el comando curl. El primer paso será guardar las URL de los archivos para que se descarguen en un archivo de texto. Aquí tenemos una descarga de archivos de texto.txt con las siguientes URL.
Para descargar los archivos simultáneamente, ejecute el siguiente comando:
$ xargs -p 5 -n 1 curl -o < download.txt
El comando se enrolla cada línea en el archivo de texto 5 veces en paralelo. El -n 1 La bandera asegura que el comando curl lea una línea para cada ejecución del comando curl.
Y así es como ejecuta múltiples solicitudes de curl en paralelo.