Skripte paralell verarbeiten

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Milbret
Beiträge: 827
Registriert: 26.05.2008 12:04:54
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Nörten-Hardenberg
Kontaktdaten:

Skripte paralell verarbeiten

Beitrag von Milbret » 05.01.2012 18:47:35

Ich habe aktuell einige Skripte die aktuell nur synchron verarbeitet werden.
So rufe ich ein Skript auf, dass per rsync 2 Verzeichnisse abgleicht.
Ich übergeben die Quelle und das Ziel des Abgleichs.
Da ich aber bereits eine längere Liste habe, würde ich eine paralelle Verarbeitung wünschen.
Leider habe kenne ich keinen direkten Weg ein Skript paralell ablaufen zu lassen ohne das mich Ausgaben stören würden.

Da die Skripte auch Ausgaben erzeugen, reicht ein einfaches & nicht.
Gibt es eine saubere Möglichkeit so etwas umzusetzen?

Unter Windows trickse ich in dem ich bestimmte Befehle in eigenen Shells aufrufe um die paralelle Verarbeitung von Batch Skripten zu ermöglichen.
Muss ich hier genauso vorgehen oder gibt es alternativen mit Bordmitteln?

Zusätzlich bräuchte ich dann aber noch einen kleinen Kniff.
Ich bräuchte eine Möglichkeit, dass ich einige Befehle im Hintergrund ausführe und erst wenn diese abgearbeitet wurden, soll eine weitere Verarbeitung starten.

Nachtrag:
Scheinbar reicht es wenn ich doch per & alles im Hintergrund ablaufen lasse und die Ausgaben dann wohl umleiten.
Dann wäre nur noch die Frage ob ich es wie folgt umsetzen kann.

Beispiel:

Ich habe einige rsync Jobs.
Diese werden in einem Skript in den Background verlagert.
Wenn diese abgerabeitet wurden, sollen weitere rsync Jobs angestoßen werden.

Damit will ich folgendes erreichen.
Ich habe 2 Skripts.

1.mirror
2.backup

Skript 1 spiegelt einige Verzeichnise über das Internet per rsync.
Skript 2 synchronisiert die Daten mit einem Verzeichnis auf einer anderen Platte.

Natürlich muss Skript 1 abgearbeitet werden, bevor Skript 2 gestartet werden kann.
Wenn ich aber die Skriptaufrufe in den Hintergrund schicke, würde er gleich Skript 2 starten.
Dies darf nicht geschehen.

Martin
Es gibt keine if Schleife -> http://www.if-schleife.de/
Ansonsten GPL/GNU/Linux/Debian/Free Software 4 Ever :D

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Skripte paralell verarbeiten

Beitrag von Cae » 05.01.2012 21:15:51

Code: Alles auswählen

$ (foo --arg1 --arg2 && bar --arg3 --arg4) &
Was spricht dagegen? Stichwort Subshell.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Milbret
Beiträge: 827
Registriert: 26.05.2008 12:04:54
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Nörten-Hardenberg
Kontaktdaten:

Re: Skripte paralell verarbeiten

Beitrag von Milbret » 06.01.2012 06:24:21

Denke, dass sollte reichen :)
Werde ich heute mal testen.

Martin
Es gibt keine if Schleife -> http://www.if-schleife.de/
Ansonsten GPL/GNU/Linux/Debian/Free Software 4 Ever :D

Antworten