Wie bekomme ich Exit Code wenn ich xargs (parallel) verwende?

9

Ich habe ein Skript zum Starten des parallelen rsync-Prozesses erstellt:

%Vor%

Dann habe ich Probleme, den Exit-Status des rsync-Prozesses zu erhalten. Ich weiß, dass es möglich ist, ein Array von Pipestatus zu erhalten, aber ich muss den Exit-Code abfangen, um zu wissen, ob das rsync erfolgreich gemacht wurde oder nicht.

Wer weiß es?

    
bLuEdDy 14.04.2014, 08:45
quelle

1 Antwort

6

Die man-Seite für xargs zeigt die möglichen Werte für den Exit-Status an, sie kann jedoch nur einen einzigen aggregierten Exit-Code erzeugen, keinen Exit-Code pro Kind, das ausgeführt wird. Sie könnten eine dieser Optionen ausprobieren:

  • Lassen Sie den Prozess, dass xargs spawns seinen Exit-Code ausgibt und die übergeordnete Aufgabe alle Exit-Code-Ausgaben analysiert, um den Exit-Code für jedes rsync zu bestimmen.
  • Verwenden Sie GNU parallel mit der Option --joblog . Dadurch wird eine Datei erstellt, die alle Befehle enthält, die zusammen mit ihrem Beendigungscode und anderen Informationen parallel ausgeführt wurden. Diese Datei könnte dann analysiert werden, nachdem parallel beendet wurde, um festzustellen, welche rsync-Befehle fehlgeschlagen sind, und ihre jeweiligen Fehlercodes.
Austin Phillips 14.04.2014, 11:28
quelle

Tags und Links