Ich habe mich immer gefragt, warum rsync
versucht wird, eine Datei an einen Remotestandort zu übertragen, an dem sie Lese- / Ausführungsberechtigungen für das Zielverzeichnis hat, aber keine Schreibberechtigungen zum Erstellen der eigentlichen Zieldatei . Dies kann sogar lokal simuliert werden, wenn versucht wird, eine Datei als normaler Benutzer nach / zu kopieren , rsync
die gesamte Datei überträgt (was auch bei großen Dateien ziemlich lange dauert) und schließlich mit fehlschlägt
rsync: mkstemp "/.myTargetFile" failed: Permission denied (13)
So scheint es , schon beim Start zum Scheitern verurteilt , wenn man versucht , die temporäre Datei (die erstellen Punkt -datei) während der Übertragung. Warum merkt es das nicht und bricht es früh ab, anstatt zu versuchen, die gesamte Datei ohne Schreibberechtigung zu kopieren?
Und wohin wird die Datei kopiert, wenn die temporäre Datei nicht erstellt werden kann? Ich kann keine Speichererhöhung der rsync-Prozesse und auch keine entsprechende Datei in / tmp sehen . Scheint, als würde es die Daten am Ziel direkt verwerfen, aber die Übertragung fortsetzen.
--inplace
wird die gesamte Datei übertragen, bis der Mangel an Schreibberechtigungen festgestellt wird.