Benutzer-Werkzeuge

Webseiten-Werkzeuge


it:linux:rsync

rsync

rsync ist sowohl ein Netzwerkprotokoll (TCP Port 873) als auch ein unter der GPL stehendes Programm zur Synchronisation von Daten, meistens über ein Netzwerk. Die Synchronisation läuft bei rsync nur unidirektional, also von einem Quellverzeichnis zu einem Zielverzeichnis, ab. Wenn beide Verzeichnisse geändert wurden, werden die Änderungen nicht zusammengeführt (merge), sondern die Änderungen im Zielverzeichnis gehen verloren. Bei der Datenübertragung werden Teile einer Quelldatei (die zu übertragende Datei), die sich bereits in der Zieldatei befinden, nicht übertragen, wodurch viel Transfervolumen gespart werden kann (Delta-Kodierung).
rsync kann z.B. immer dann verwendet werden, wenn ein Fileserver auf neue Hardware umzieht. Im Gegensatz zu normalen Kopiervorgängen, wo bei einem Fehler der komplette Kopiervorgang abgebrochen wird, kann rsync diese Fehler ignorieren bzw. übergehen und ggf die Fehler in ein Log-File schreiben. Gerade bei Fileservern kann es auch wichtig sein, den original Zeitstempel der Dateien und Verzeichnisse zu erhalten; normale Kopiervorgänge zB ändern das Änderungsdatum auf das aktuelle zum Zeitpunkt des Kopierens. rsync wird durch seine Eigenschaft, nicht den gesamten Verzeichnisbaum zu kopieren, sondern nur geänderte Daten und davon auch nur Teile, auch in verschiedenen Backup-Szenarien Anwendung finden.

Syntax Local:

rsync [OPTION…] SRC… [DEST]

Access via remote shell:

Pull: rsync [OPTION…] [USER@]HOST:SRC… [DEST]
Push: rsync [OPTION…] SRC… [USER@]HOST:DEST

Access via rsync daemon:
Pull:

rsync [OPTION…] [USER@]HOST::SRC… [DEST]
rsync [OPTION…] rsync://[USER@]HOST[:PORT]/SRC... [DEST]

Push:

rsync [OPTION…] SRC… [USER@]HOST::DEST
rsync [OPTION…] SRC… rsync://[USER@]HOST[:PORT]/DEST

rsync 3.0.7

Option (lang) 	(kurz) 	Bedeutung
--help 	-h 	Hilfe anzeigen
--archive 	-a 	Archiv-Modus = -Dgloptr (-Do benötigen root-Rechte!)
device group links owner permission times recursive
-D 	Geräte + Spezialdateien transferieren (nur root!)
--group 	-g 	Besitzer-Gruppe transferieren
--links 	-l 	Symbolische Links transferieren
--owner 	-o 	Besitzer transferieren (nur root!)
--perms 	-p 	Zugriffsrechte transferieren
--times 	-t 	Datum transferieren
--recursive 	-r 	Ganze Verzeichnis-Bäume replizieren
--rsh=CMD 	-e 	Zu benutzende "Remote Shell" (z.B. ssh)
--compress 	-z 	Komprimierung der Datenübertragung (remote sinnvoll)
--quiet 	-q 	Ablaufmeldungen unterdrücken (nur Fehlermeldungen)
--verbose 	-v 	Meldung pro transferierter Datei
2x --verbose 	-vv 	Meldung mit übersprungenen Dateien
3x --verbose 	-vvv 	Meldung mit Debuginfo (sehr viel!)
--delete 		Dateien löschen, die auf dem Sender fehlen
--delete-during 		Dateien WÄHREND Transfer löschen [--del]
--delete-before 		Dateien VOR Transfer löschen
--delete-after 		Dateien NACH Transfer löschen
--dry-run 	-n 	Aktionen nur anzeigen, NICHT ausführen
--update 	-u 	Neuere Dateien NICHT überschreiben
--hard-links 	-H 	Harte Links erhalten (aufwendig!)
--sparse      -S 	Sparse Dateien erhalten (lange 0-Byte Sequenzen)
--acls        -A 	ACLs transferieren (enthält --perms)
--ignore-errors 		Löschen auch bei aufgetretenen I/O Errors
--ignore='[Pattern]' 		Dateien die dem angegebenen Pattern entsprechen ausschließen
--extended-attributes 	-X 	»Nur Mac OSX« Extended Attributes transferieren
--filter="[+/-] [Pattern]" 	-f 	Elemente auf die das angegebene Suchpattern zutrifft kopieren (+) bzw. weg lassen (-) 

~~UP~~

it/linux/rsync.txt · Zuletzt geändert: 2019/05/14 21:16 von 127.0.0.1