Ausführen paralleler Anfragen mit dem Befehl xargs
Der Xargs Der Befehl ist ein Befehl in Linux- und UNIX-ähnlichen Betriebssystemen, der Argumente von Standardeingaben akzeptiert oder entnimmt und dann einen Befehl für jedes Argument ausführt. Einfach ausgedrückt, der Befehl xargs kann die Ausgabe eines Befehls nutzen und ihn als Argument eines anderen Befehls verarbeiten.
Zum Beispiel nimmt Xargs im folgenden Befehl die Argumente auf der linken Seite und erstellt Verzeichnisse mit den Argumentnamen.
$ echo 'Africa Asia Europe America' | Xargs Mkdir
Der Befehl xargs kann auch verwendet werden, um mehrere Anforderungen gleichzeitig auszuführen. Wenn Sie die Manpages überprüfen, finden Sie einen Abschnitt, der Ihnen die unten angegebenen Befehlszeilenargumente gibt.
Mit Xargs werden wir versuchen, gleichzeitig die Ausführung mehrerer Curl -Anforderungen zu befehlen.
Der Befehl linux curl ist ein Befehlszeilendienstprogramm, das für die Dateiübertragung verwendet wird. Es unterstützt eine Vielzahl von Protokollen wie HTTP, HTTPS, FTP, FTPS, SCP, TFTP und vieles mehr.
Nehmen wir an, Sie möchten die HTTP -Header einer Website über den Befehl curl erhalten. Dazu müssten Sie den Curl -Befehl mit der Flagge aufrufen.
$ curl -i "https: // linuxways.Netz"
Jetzt haben Sie gerade eine einzige Curl -Anfrage gesendet. Angenommen, Sie möchten 5 parallele Anfragen ausführen. Wie würdest du damit vorgehen?? Die Lösung hier.
$ xargs -i % -p 5 curl -i "https: // linuxways.Netz" < <(printf '%s\n' 1… 10)
Das -P -Flag bezeichnet die Anzahl der parallelen Anfragen. Die Sektion <(printf '%s\n' 1… 10) Druckt die Nummern 1 - 10 aus und führt dazu.
Zusätzlich können Sie den folgenden Befehl ausführen, um dasselbe Ergebnis zu erzielen. Wie beim vorherigen Beispiel führt der folgende Befehl 10 Mal mit 5 Anforderungen parallel aus dem COLL -Befehl aus.
$ seq 1 10 | xargs -n1 -p 5 curl -i "https: // linuxways.Netz"
Nehmen wir ein anderes Beispiel. Angenommen, Sie möchten 3 Dateien gleichzeitig mit dem Curl -Befehl herunterladen. Der erste Schritt besteht darin, die URLs der Dateien vor dem Herunterladen in einer Textdatei zu speichern. Hier haben wir eine Textdatei herunterladen.TXT mit den folgenden URLs.
Um die Dateien gleichzeitig herunterzuladen, führen Sie den folgenden Befehl aus:
$ xargs -p 5 -n 1 curl -o < download.txt
Der Befehl senkt jede Zeile in der Textdatei 5 -mal parallel. Der -n 1 Flag stellt sicher, dass der Befehl curl eine Zeile für jede Ausführung des Curl -Befehls liest.
Und so führen Sie mehrere Curl -Anfragen parallel aus.