rsync, um geänderte Dateien zu kopieren


42

Ich muss täglich einige Dateien aus einem bestimmten Verzeichnis an einen anderen Speicherort kopieren. Ich möchte nur die Änderungen kopieren, um sie zu verwenden rsync. Diese Dateien folgen der folgenden Namenskonventionmysql-bin.*

Mein Befehl sieht wie folgt aus

# rsync --update -raz --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

Meine Verwirrung ist, dass ich nur wenige Dateien aus einem Verzeichnis und nicht den gesamten Verzeichnisinhalt * kopieren möchte. Daher habe ich bisher nur die erforderlichen Dateien kopiert. Ich möchte nur wissen, ob mein Befehl richtig ist, um dasselbe zu erreichen.

Antworten:


51

Es sieht in Ordnung aus. Warum verwenden Sie die -zOption, um die Übertragung zu komprimieren? Diese Option wird normalerweise verwendet, wenn Sie über ein langsames Netzwerk auf einen Remote-Rsync-Server kopieren. In diesem Fall werden die Dateien komprimiert und sofort dekomprimiert, was die CPU-Auslastung nur erhöht, ohne dass dies von Vorteil ist.

Die -aOption (archive) impliziert die Option -r(recursive), sodass dies in der Befehlszeile nicht explizit angegeben werden muss.

Sie können die -nOption (oder --dry-run) verwenden, um Ihren Befehl zu überprüfen. Es wird gezeigt, was es tun würde, ohne tatsächlich irgendwelche Dateien zu kopieren. Um tatsächlich zu sehen, was passiert, sollten Sie auch die -vOption (oder --verbose) verwenden.

Deshalb:

rsync -uanv /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

und wenn Sie zufrieden sind, dass die Dateien im Probelauf korrekt aufgelistet sind, entfernen Sie Folgendes nv:

rsync -ua --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

3
Wie es in der Manpage heißt, wird die --dry-runFlagge am häufigsten in Verbindung mit der --verboseFlagge verwendet
Benjamin Leinweber
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.