So führen Sie Linux-Befehle gleichzeitig mit GNU Parallel aus

So installieren Sie Jack Wallen von GNU Parallel TechRepublic führt Sie Schritt für Schritt durch die Installation des Befehlszeilenprogramms GNU Parallel.

Wenn Sie Befehle unter Linux ausführen, sei es einzeln an der Eingabeaufforderung oder über ein Bash-Skript, werden diese Befehle nacheinander ausgeführt. Der erste Befehl wird ausgeführt, gefolgt vom zweiten und dem dritten. Zugegeben, die Zeit zwischen den Befehlen ist so winzig, dass das bloße Auge es nicht bemerkt. In einigen Fällen ist dies möglicherweise nicht das effizienteste Mittel zum Ausführen von Befehlen. Was tun Sie, wenn Sie sich in einer Situation befinden, in der mehrere Befehle gleichzeitig ausgeführt werden müssen (z. B. auf den Linux-Servern Ihres Rechenzentrums)?

Rechenzentrum muss unbedingt gelesen werden

  • 8 Vorhersagen für Rechenzentren für 2020
  • 7 Netzwerkvorhersagen für 2020: Automatisierung, Edge-Computing, Wi-Fi 6, mehr
  • Best Practices für die Servervirtualisierung und Tipps, was nicht zu tun ist
  • Quantencomputer: Sieben Wahrheiten, die Sie kennen müssen

Sie wenden sich an GNU Parallel.

Was ist GNU Parallel?

GNU Parallel ist ein Shell-Tool, mit dem Jobs parallel auf einem oder mehreren Computern ausgeführt werden können. Ein Job kann ein einzelner Befehl oder eine Eingabe aus einer Datei sein, die beispielsweise eine Liste von Befehlen, eine Liste von Dateien, eine Liste von Hosts, eine Liste von Benutzern, eine Liste von URLs oder eine Liste von Tabellen enthält. GNU Parallel kann auch Informationen aus einem Pipeline-Befehl entnehmen.

Ich möchte Ihnen zeigen, wie Sie GNU Parallel installieren und dann die Grundlagen seiner Verwendung.

Installation

Ich werde auf einem Ubuntu Server 16.04 demonstrieren. GNU Parallel kann auf nahezu jeder Linux-Distribution installiert werden. Wenn Sie also eine andere Distribution als Ubuntu verwenden, müssen Sie den Installationsbefehl an Ihre Plattform anpassen.

Da sich GNU Parallel im Standard-Repository befindet, ist die Installation einfach. Öffnen Sie ein Terminalfenster und geben Sie den folgenden Befehl ein:

 sudo apt parallel installieren 

Sobald die Installation abgeschlossen ist, möchten Sie das Zitierbanner stumm schalten. Dies wird eingerichtet, um sicherzustellen, dass jeder, der GNU Parallel für Publican verwendet, die Entwickler zitiert.

Geben Sie den Befehl parallel --bibtex ein, um das Zitierbanner zum Schweigen zu bringen. Sie erhalten dann die Zitierinformationen und werden aufgefordert, das Zitat zu zitieren ( Abbildung A ).

Abbildung A.

Wenn Sie die Entwickler nicht zitieren möchten, können Sie jederzeit die 10000 EUR bezahlen.


Sie können jetzt GNU Parallel verwenden.

Verwendung

Der einfachste Weg, GNU Parallel zu demonstrieren, ist die Verwendung des Befehls echo. Angenommen, wir möchten den Befehl echo verwenden, um eins zwei drei vier auszudrucken. Der Befehl dafür wäre:

 Echo "eins zwei drei vier" 

Die Ausgabe würde in Abbildung B so aussehen.

Abbildung B.

Unser Echoausgang.


Der gleiche Befehl, der parallel verwendet wird, wäre:

 paralleles Echo ::: eins zwei drei vier 

Die Ausgabe für das Obige würde wie in Abbildung C aussehen.

Abbildung C.

Unsere parallele Version von Echo.


Wir könnten auch zwei Eingabedaten wie folgt angeben:

 paralleles Echo ::: 1 2 3 4 ::: ABCD 

Die Ausgabe für den obigen Befehl würde wie in Abbildung D aussehen.

Abbildung D.

Zwei Eingabequellen über die Befehlszeile.


Wie Sie sehen können, definieren wir den Befehl aus den Eingabevariablen mit den Zeichen :::. Sie können auch Dateien als Eingabe für den Befehl verwenden. Lassen Sie mich demonstrieren. Erstellen Sie zwei Dateien. Die erste abc-Datei mit dem Inhalt:

 ABCDEFGHIK 

Die zweite Datei mit dem Namen 123-file enthält den Inhalt:

 1 2 3 4 5 6 7 8 9 10 

Jetzt verwenden wir diese beiden Dateien, um eine Ausgabe zu generieren. Der Befehl hierfür könnte folgendermaßen aussehen:

 parallel -a abc-file -a 123-file echo 

Die Ausgabe würde wie in Abbildung E dargestellt aussehen.

Abbildung E.

Die Eingabe aus einer Datei sieht folgendermaßen aus.


Was tun Sie, wenn Ihre Eingabedateien nicht gleich lang sind? GNU Parallel umschließt die Ausgabe der kürzeren Datei, sodass sie mit der längeren Datei übereinstimmt. Die Ausgabe ähnelt der in Abbildung E (oben). Was ist jedoch, wenn wir etwas mehr Kontrolle über diese Ausgabe erlangen möchten? Anstelle von GNU Paralleles Wiederholen (Um die Eingaben anzupassen):

 1 A 1 A 1 A 1 A 1 A 2 B 2 B 2 B 2 B 2 B. 

Es ist möglich, das Argument -xapply zu verwenden . Angenommen, wir haben die 10-Datei mit 10 Eingabezeilen (12345678910 - eine Nummer pro Zeile) und die 5-Datei mit fünf Eingabezeilen (ABCDE - eine Nummer pro Zeile). Geben Sie den folgenden Befehl ein:

 parallel --xapply -a 10-Datei -a 5-Datei-Echo 

Sie werden sehen, dass GNU Parallel den Inhalt von 10 Dateien nur einmal ausdruckt, aber den Inhalt von 5 Dateien wiederholt, bis er der Länge von 10 Dateien entspricht ( Abbildung F ).

Abbildung F.

Umschließen der Ausgabe mit --xapply.


Verwendung mit Befehlen

Bisher haben wir nur den Befehl echo verwendet, um Zeichen auszugeben. Sehen wir uns ein Beispiel an, das tatsächlich Befehle verwendet. Angenommen, wir haben ein Verzeichnis namens TEST. In diesem Ordner befinden sich eine Datei namens test und ein Unterverzeichnis namens 1, das die Dateien test und test2 enthält. Angenommen, wir möchten test in test1 umbenennen, test1 in test2 umbenennen, das Verzeichnis 1 tarieren und dann das geteerte Verzeichnis umbenennen. Wir könnten eine Datei mit folgendem Inhalt erstellen:

 mv test test1 mv test1 test2 tar cfz 1.tar.gz 1 mv 1.tar.gz 2.tar.gz 

Speichern und schließen Sie diese Datei und benennen Sie sie als Jobs. Jetzt nehmen wir Eingaben von Jobs mit dem parallelen Befehl wie folgt entgegen:

 parallel --jobs 4 <jobs 

Die Option --jobs weist GNU Parallel an, wie viele Befehle ausgeführt werden dürfen. In unserem Fall haben wir 4 Befehle. Wenn mehr Befehle als zulässige Jobs vorhanden wären, würden die verbleibenden Befehle in eine Warteschlange gestellt. Im Allgemeinen ist es sicher, mehr Jobs zuzulassen, als Sie Befehle haben. Geben Sie also den folgenden Befehl ein:

 parallele Jobs 6 <Jobs 

Wäre in Ordnung.

Der Befehl gibt keine Ausgabe aus. Wenn Sie in das TEST-Verzeichnis wechseln, werden Sie feststellen, dass sich gemäß unserer Eingabedatei mit Befehlen alles geändert hat.

An der Oberfläche kratzen

Wir haben gerade erst die Oberfläche von GNU Parallel zerkratzt. Ich empfehle Ihnen dringend, das offizielle GNU Parallel-Tutorial zu lesen und diese Video-Tutorial-Serie auf Yutube anzusehen, damit Sie die Komplexität des Tools verstehen können (von dem es viele gibt). Auf diese Weise können Sie Ihren Linux-Servern in Rechenzentren dabei helfen, Befehle effizienter zu verwenden.

Newsletter zu Trends im Rechenzentrum

DevOps, Virtualisierung, Hybrid Cloud, Speicher und betriebliche Effizienz sind nur einige der Themen im Rechenzentrum, die wir hervorheben werden. Wird montags und mittwochs geliefert

Heute anmelden

© Copyright 2020 | mobilegn.com