scp
überprüft, ob alle von der anderen Partei gesendeten Daten kopiert wurden. Die Integrität der Übertragung wird durch das kryptografische Kanalprotokoll garantiert. Sie müssen die Integrität also nach der Übertragung nicht überprüfen. Dies wäre redundant und würde wahrscheinlich keinen Hardwarefehler erkennen, da die Daten, mit denen Sie vergleichen, wahrscheinlich aus dem Cache gelesen würden. Eine regelmäßige Überprüfung der Daten kann nützlich sein, eine Überprüfung unmittelbar nach der Übertragung ist jedoch sinnlos.
Sie müssen jedoch sicherstellen, dass scp
Ihnen nicht gesagt wird, dass etwas schief gelaufen ist. Es sollte eine Fehlermeldung angezeigt werden, aber der zuverlässige Indikator ist, dass scp
ein Exit-Code ungleich Null zurückgegeben wird, wenn ein Fehler aufgetreten ist .
Genauer gesagt, Sie wissen, dass die Datei korrekt übertragen wurde, wenn scp
0 zurückgegeben wird (dh der Erfolgsstatuscode). Überprüfen Sie, ob der Beendigungsstatus 0 ist, wenn Sie einen Befehl ausführen. Wenn scp
ein Fehlerstatus zurückgegeben wird oder wenn er durch ein Signal getötet wird oder wenn er niemals stirbt, weil das System während des Betriebs abstürzt oder die Stromversorgung verliert, haben Sie keine Garantie. Da scp
die Datei direkt in den endgültigen Namen kopiert wird, können Sie im Falle eines Systemabsturzes eine Teildatei erhalten. Der kopierte Teil ist garantiert korrekt, die Datei wird jedoch möglicherweise abgeschnitten.
Verwenden Sie zur Erhöhung der Zuverlässigkeit rsync anstelle von scp. Sofern nicht anders angegeben, schreibt rsync in eine temporäre Datei und verschiebt sie an ihren Platz, sobald sie fertig ist. Wenn also rsync einen Erfolgscode zurückgibt, wissen Sie, dass die Datei vorhanden ist und eine korrekte, vollständige Kopie vorliegt. Wenn rsync keinen Fehlercode zurückgegeben hat, ist keine Datei vorhanden (es sei denn, es gab eine ältere Version der Datei. In diesem Fall wird diese ältere Version nicht geändert).
scp
und eine zugehörige Fehlermeldung an stderr erhalten , hat er alles korrekt und vollständig kopiert.