ich ein Skript für den Start parallel rsync Prozess gemacht hatte:wie Exit-Code zu erhalten, wenn xargs (parallel) mit
#! /bin/bash
LIST=$1
DEST_DIR=$2
RSYNC_OPTS=$3
#echo "rsyncing From=$SRC_DIR To=$DEST_DIR RSYNC_OPTS=$RSYNC_OPTS"
echo $LIST|xargs -n1 -d, echo|xargs -n1 -P 0 -I% rsync --rsync-path='sudo rsync' ${RSYNC_OPTS} % ${DEST_DIR}
Dann habe ich Probleme den Exit-Status des rsync-Prozess zu bekommen. Ich weiß, dass es möglich ist, ein Array von Pipestatus zu bekommen, aber ich muss den Exit-Code abfangen, um zu wissen, ob das rsync erfolgreich gemacht wurde oder nicht.
Wer weiß?
Sie haben bereits '$ PIPESTATUS' erwähnt:' $ {PIPESTATUS [2]} 'enthält den Exit-Status des zweiten' xargs' Befehls. Dies wird 123 sein, wenn 'rsync' mit einem Status von 1-125 beendet wird (siehe Abschnitt zum Beenden des Status hier: http://unixhelp.ed.ac.uk/CGI/man-cgi?xargs) –
Hallo Josh, danke für deine Antwort. Nichtsdestotrotz brauche ich den Exit-Code des Rysnc, nicht den Xargs-Exit-Code. Etwas wie dieses: http://wpkg.org/Rsync_exit_codes – bLuEdDy
Nicht sicher, dass Sie in der Lage wären, den rsync spezifischen Ausgangsstatus unter Verwendung der xargs so zu erhalten, wird es durch xargs maskiert. Vielleicht könntest du stattdessen '$ LIST' durchlaufen? –