Rsync änderte nur Dateien

14

Ist es möglich, rsyncalle Dateien in einem Verzeichnis zu übertragen, die geändert oder erstellt wurden? Ich brauche nicht so etwas Raffiniertes wie einen CRC-Diff-Check. Dateien mit unterschiedlichen Zeitstempeln und / oder Dateigrößen gelten als Änderungen.

Die Manpage vermittelt den Eindruck, dass dies möglich sein sollte, aber ich benötige eine kleine Anleitung, welche Parameter übergeben werden sollen rsync.

instanceofTom
quelle

Antworten:

19

So synchronisieren Sie nur zwei Verzeichnisse:

$ rsync /source/path/* /dest/path/

Oder wenn Sie einen ganzen Baum machen wollen:

$ rsync -a /source/path/ /dest/path/

"-a" gibt den "Archiv" -Modus an, in dem der Baum so genau wie möglich dupliziert wird.

Ich mag es, die Flags hinzuzufügen vund Pdort zu sehen, wie es funktioniert:

$rsync -avP /source/path/ /dest/path/

"-v" aktiviert den ausführlichen Modus, damit Sie sehen können, was er tut (die Dateien werden beim Kopieren aufgelistet), und "-P" aktiviert den Fortschritt, damit Sie sehen können, wie lange es dauert, jede Datei zu kopieren (in Prozent kopiert, Verbleibende Zeit usw.) und zeigt an, wie weit Sie in der Kopie sind.

Majenko
quelle
3
... und vielleicht das Z-Flag hinzufügen, um die Komprimierung für die Übertragung zu verwenden
Linker3000
4
... wenn Sie an einen entfernten Ort
wechseln
14

So rsyncfunktioniert das standardmäßig (zumindest unter Linux). Von der Manpage :

Rsync findet Dateien, die mit einem "Quick Check" -Algorithmus (standardmäßig) übertragen werden müssen, der nach Dateien sucht, deren Größe oder die zuletzt geänderte Zeit geändert wurde. Alle Änderungen an den anderen beibehaltenen Attributen (wie von den Optionen angefordert) werden direkt in der Zieldatei vorgenommen, wenn die Schnellprüfung anzeigt, dass die Daten der Datei nicht aktualisiert werden müssen.

Rob H
quelle
Ah, ich hatte mich verwirrt, als ich die Dokumentation falsch gelesen hatte. Vielen Dank :)
instanceofTom