Soweit ich sehe, erstellt rsync die Datei erst dann im Zielverzeichnis, wenn sie vollständig ist.
Dies muss bedeuten, dass die Datei irgendwo in einem temporären Verzeichnis erstellt und anschließend in das Zielverzeichnis kopiert wird.
Ist das richtig?
Wenn dies zutrifft, kann rsync dann festlegen, dass kein temporäres Verzeichnis verwendet wird, und stattdessen die Datei im Zielverzeichnis erstellen und nur so lange darauf schreiben, bis sie vollständig ist?
Es wird eine temporäre Datei erstellt, die standardmäßig im Zielverzeichnis gespeichert und benannt ist
.<FILE_NAME>.<RANDOM_STRING>
. Wenn Sie also kopierenfoo.txt
, wird eine tmp-Datei mit dem Namen erstellt.foo.txt.GV4H3
(diesGV4H3
ist die zufällige Zeichenfolge, die sich bei jeder Ausführung ändert). Sie können dieses Verhalten mithilfe der folgendenrsync
Optionen steuern :Bitte lesen Sie die relevanten Teile der
rsync
Manpage (das Folgende ist nur ein kleiner Auszug aus dem großen Abschnitt über die Verwendung--partial-dir
).quelle
rsync erstellt temporäre Dateien im Zielverzeichnis. Diese Datei heißt wie die Quelle, hat aber eine Erweiterung. Es könnte so sein:
Die Erweiterung wird entfernt, nachdem überprüft wurde, dass die Datei eine exakte Kopie der Quelle ist. Während des Besitzes des Umbenennungsprozesses werden Berechtigungen und Änderungszeit festgelegt. Es ist also möglich, dass Sie die Datei aufgrund der Berechtigungen nicht sehen. Stellen Sie sicher, dass Sie über die erforderlichen Berechtigungen verfügen, um alle Dateien anzuzeigen, die Ihnen nicht gehören, damit Sie die temporären Dateien anzeigen können.
quelle