Ich versuche, rsync so einzurichten, dass mein Hauptwebserver mit dem Remoteserver synchronisiert wird, indem der späteren Datei eine neu generierte Datei hinzugefügt wird.
Hier ist der Befehl, den ich benutze:
rsync -avh --update -e "ssh -i /path/to/thishost-rsync-key" remoteuser@remotehost:/foo/bar /foo/bar
Es scheint jedoch, dass der Webserver trotz des '--update'-Flags tatsächlich alle Dateien überträgt. Ich habe verschiedene Flag-Kombinationen ausprobiert (z. B. '-a' weglassen und stattdessen '-uv' verwenden), aber keine hat geholfen. Ich frage mich also, wie ich den Befehl rsync so ändern kann, dass nur neu hinzugefügte Dateien gesendet werden. Vielen Dank
rsync /foo/bar remoteuser@remotehost:/foo/bar
-a
Optionen unterstützt (Eigentümer, Gruppe, Dauerwelle, ...), sollte dies die Ursache für unser Problem sein.-c
Option gefunden. Es überspringt vorhandene Dateien basierend auf einer Prüfsumme, anstatt Änderungszeit oder -größe.Antworten:
Von
man rsync
:--update
macht etwas etwas anderes, was wahrscheinlich der Grund ist, warum Sie unerwartete Ergebnisse erhalten (sieheman rsync
):quelle
--ignore-existing
Bedeutet dies, dass keine Dateien übertragen werden, die auf dem Empfänger vorhanden sind, oder dass keine Dateien übertragen werden, wenn auf dem Empfänger eine Datei / ein Ordner mit demselben Namen vorhanden ist?In meinem Fall hatte ich ähnliche Probleme, da alle Dateien übertragen wurden und nicht nur die geänderten / neuen. Ich habe das gelöst, indem ich Parameter
-t
(anstelle von-a
) und-P
(äquivalent zu--partial --progress
) verwendete:Dies überträgt nur neue Dateien und Dateien, die bereits vorhanden, aber geändert sind. Dies
-a
führt zu einer übermäßigen Synchronisierung der Benutzer- und Gruppen-ID, die in meinem Fall nicht funktionieren kann, da ich auf meinen Quell- und Zielsystemen unterschiedliche Benutzer und Gruppen habe.Die Parameter im Detail:
-h
: vom Menschen lesbare Zahlen-v
: ausführlich-r
: in Verzeichnisse rekursieren-P
:--partial
(teilweise übertragene Dateien behalten) +--progress
(Fortschritt während der Übertragung anzeigen)-t
: Änderungszeiten einhaltenquelle
-rlptgoD
, damit die Erlaubnis nicht abgeflacht wird, Gruppen und Besitzer erhalten bleiben - nicht meine typische spielsichere Sicherung ...)Aus meiner Erfahrung mit rsync ist das Kopieren einer 1-TB-Partition zu groß, um effizient zu sein. Es dauert ewig, bis Rsync es verarbeitet. Tun Sie dies stattdessen in Unterverzeichnissen. Führen Sie also rsync für jedes Hauptunterverzeichnis aus. Es geht viel schneller, wenn es nicht Zehntausende von Dateien jonglieren muss.
quelle
Versuchen
quelle