ReLast - Klassik


rsync


Syntax

rsync benötigt die Angabe von Quelle und Ziel. Die erste Pfadangabe wird als Quelle verwendet. Wird kein Ziel angegeben werden die Dateien lediglich aufgelistet. Um Verwechslungen zu vermeiden sollten beide Verzeichnisse angegeben werden, auch wenn das aktuelle Verzeichnis verwendet werden soll.

rsync quelle/* ./
rsync ./* ziel/

Die Pfadangaben können mit abschließendem Schrägstrich oder ohne notiert werden. Wird bei der Quelle ein abschließender Schrägstrich notiert, wird der Inhalt des Verzeichnisses in das Zielverzeichnis übertragen. Wird kein abschließender Schrägstrich notiert, wird das Verzeichnis selber übertragen (also das Quellverzeichnis im Ziel als neues Unterverzeichnis angelegt). Um Verwechslungen zu vermeiden sollte eine Wildcard verwendet werden wenn der Inhalt eines Verzeichnisses übertragen werden soll. Die folgenden beiden Anweisungen sind identisch.

rsync quelle ziel/
rsync quelle/* ziel/quelle/ 

rsync akzeptiert Parameter sowohl in Kurzschreibweise als auch in Langschreibweise. Kurzschreibweise wird mit einem führenden Bindestrich notiert "-...", Langschreibweise mit zwei "--...". Die Verwendung der Langschreibweise ist besser lesbar und sollte in Skripten verwendet werden, dies erhöht die Verständlichkeit in wiederholten Einsätzen des Befehls oder in kritischen Umgebungen. Die Kurzschreibweise eignet sich für einmalige Anwendungen auf der Konsole. Die folgenden beiden Anweisungen sind identisch.

rsync -v quelle/* ziel/
rsync --verbose quelle/* ziel/

Parameter

Die Ausgabe von rsync kann mit dem Parameter "verbose" erweitert werden (Statusmeldungen, gesendete und empfangene Datenmenge, Übertragungsgeschwindigkeit, ...).

rsync -v quelle/* ziel/
rsync --verbose quelle/* ziel/

Per Standard überträgt rsync nur die Dateien in der angegebenen Quelle. Nicht den Inhalt der Unterverzeichnisse. Der Parameter "recursive" sorgt dafür das die Unterverzeichnisse durchlaufen werden.

rsync -r quelle/* ziel/
rsync --recursive quelle/* ziel/

Per Standard verwendet rsync den Zeitstempel der letzten Bearbeitung und die Größe der Datei um Unterschiede zu ermitteln. Dies kann durch die Bildung einer Prüfsumme ersetzt werden. Ersteres ist schneller, letzteres zuverlässiger. Bei verschiedenen Systemen kann die Uhrzeit und die Größenangabe immer abweichen.

rsync -c quelle/* ziel/
rsync --checksum quelle/* ziel/

Per Standard löscht rsync keine Dateien im Ziel, sondern überträgt nur neue Dateien. Soll Dateien die in der Quelle nicht mehr existieren entfernt werden muss das explizit angegeben werden. Der Parameter kann nur in Langschreibweise angegeben werden.

rsync --delete quelle/* ziel/

Es besteht ebenfalls die Möglichkeit eine "Trockenlauf" (dry run) durchzuführen. Hierbei werden keine Aktionen durchgeführt, sondern nur Ausgaben erzeugt.

rsync -n quelle/* ziel/
rsync --dry-run quelle/* ziel/

Beispiele

Übertragen aller geänderten Dateien zum Ziel. Erweiterte Ausgabe (--verbose), rekursives vorgehen (--recursive), abgleich anhand von Prüfsummen (--checksum) und löschen nicht vorhandener Dateien (--delete). Nach Abschluss dieses Kommandos ist das Zielverzeichnis gleich dem Quellverzeichnis.

rsync --verbose --recursive --checksum --delete quelle/* ziel/

Gleiches Vorgehen wie oben, aber statt Checksumme wird der Zeitstempel und die Dateigröße verwendet. Diese Vorgehensweise ist schneller, funktioniert aber nur wenn beide Systeme die gleiche Zeit haben.

rsync --verbose --recursive --delete quelle/* ziel/

Copyright © 2024

Datenschutz | Impressum