Rsync: Unterschied zwischen den Versionen
Boenki (Diskussion | Beiträge) K Überschriftenstruktur wikifiziert |
Keine Bearbeitungszusammenfassung |
||
(11 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{SEITENTITEL:rsync}} | |||
rsync ist ein Programm, welches Dateien kopiert. Dieses kann sowohl lokal, als auch in einem Netzwerk passieren. Es ist dabei sehr schnell, da es lediglich die unterschiedlichen Dateiteile kopiert. Deshalb ist rsync hervorragend für (wiederkehrende) Sicherungen geeignet. | |||
Jedoch ist rsync nur unidirektional - d.h. es kann nur in eine Richtung synchronisieren. Bidirektionale Synchronisation ist z.B. durch [ | Jedoch ist rsync nur unidirektional - d.h. es kann nur in eine Richtung synchronisieren. Bidirektionale Synchronisation ist z.B. durch [[unison]] möglich, welches allerdings dasselbe Protokoll wie rsync benutzt. | ||
== | {{installation|repo=extra|paket=rsync}} | ||
==Anwendung== | ==Anwendung== | ||
rsync nutzt verschiedene Optionen, sowie je ein Quell- und ein Zielverzeichnis. | |||
Für lokale Kopien | |||
rsync [OPTION...] SRC... [DEST] | rsync [OPTION...] SRC... [DEST] | ||
Für Kopien übers Netzwerk | |||
rsync [OPTION...] [USER@]HOST:SRC... [DEST] # pull, z.B. Download | |||
rsync [OPTION...] SRC... [USER@]HOST:DEST # push, z.B. Backup | |||
Lässt man das zweite Verzeichnis weg, so werden lediglich die Dateien im ersten Verzeichnis angzeigt. | Lässt man das zweite Verzeichnis weg, so werden lediglich die Dateien im ersten Verzeichnis angzeigt. | ||
Will man lediglich die Dateien in einem Ordner, nicht aber den Ordner selbst kopieren, so erreicht man dies, indem man ein Backslash an den Quellpfad hängt (z.B. /home/hans/docs'''/'''). Der Ordner wird dementsprechend | Will man lediglich die Dateien in einem Ordner, nicht aber den Ordner selbst kopieren, so erreicht man dies, indem man ein Backslash an den Quellpfad hängt (z.B. /home/hans/docs'''/'''). Der Ordner wird dementsprechend mit kopiert, wenn man den Backslash weglässt (z.B. /home/hans/docs). | ||
Nützliche Optionen sind unter anderen: | Nützliche Optionen sind unter anderen: | ||
Zeile 28: | Zeile 32: | ||
==Beispiele== | ==Beispiele== | ||
$ rsync -avPzbe "ssh -p 667" --delete --backup-dir=/home/hans/Sicherung/Alt peter@rechner:/tmp/ /home/hans/Sicherung | $ rsync -avPzbe "ssh -p 667" --delete --backup-dir=/home/hans/Sicherung/Alt peter@rechner:/tmp/ /home/hans/Sicherung | ||
Kopiert die Temporärdateien von einem entfernten Rechner über die SSH mit Port 667 auf den lokalen Rechner. Weiter werden die vorherigen Sicherungen und alle Dateien in /home/hans/Sicherung/, die nicht in /tmp/ liegen, nach /home/hans/Sicherung/Alt verschoben. | Kopiert die Temporärdateien von einem entfernten Rechner über die SSH mit Port 667 auf den lokalen Rechner. Weiter werden die vorherigen Sicherungen und alle Dateien in /home/hans/Sicherung/, die nicht in /tmp/ liegen, nach /home/hans/Sicherung/Alt verschoben. | ||
# rsync -a --sparse --delete --delete-excluded --exclude-from=/root/excludelist / /mnt/sdb/backup | |||
Kopiert alle Dateien und Ordner beginnend in / auf eine externe Festplatte, welche vorher nach /mnt/sdb gemountet wurde. Beim Kopieren werden auch die im SRC gelöschten Elemente auch im DEST gelöscht = SYNC/MIRROR. Weiterhin werden entsprechend excludelist bestimmte Dateien und Ordner ausgeschlossen, z.B. /dev/* und /proc/* und /boot/lost+found. Wichtig ist hier, auch /mnt/sdb/* auszuschließen, da es sonst zu einem Loop kommt. | |||
[[Kategorie:Netzwerk]] | |||
[[Kategorie:Systemverwaltung]] | |||
[[Kategorie: Befehle]] | |||
[[en:rsync]] |
Aktuelle Version vom 11. Juni 2017, 20:08 Uhr
rsync ist ein Programm, welches Dateien kopiert. Dieses kann sowohl lokal, als auch in einem Netzwerk passieren. Es ist dabei sehr schnell, da es lediglich die unterschiedlichen Dateiteile kopiert. Deshalb ist rsync hervorragend für (wiederkehrende) Sicherungen geeignet. Jedoch ist rsync nur unidirektional - d.h. es kann nur in eine Richtung synchronisieren. Bidirektionale Synchronisation ist z.B. durch unison möglich, welches allerdings dasselbe Protokoll wie rsync benutzt.
Installation
Das Programm ist als
rsync
in extra
verfügbar, und kann von dort
mittels Pacman
installiert werden.
Anwendung
rsync nutzt verschiedene Optionen, sowie je ein Quell- und ein Zielverzeichnis.
Für lokale Kopien rsync [OPTION...] SRC... [DEST]
Für Kopien übers Netzwerk rsync [OPTION...] [USER@]HOST:SRC... [DEST] # pull, z.B. Download rsync [OPTION...] SRC... [USER@]HOST:DEST # push, z.B. Backup
Lässt man das zweite Verzeichnis weg, so werden lediglich die Dateien im ersten Verzeichnis angzeigt.
Will man lediglich die Dateien in einem Ordner, nicht aber den Ordner selbst kopieren, so erreicht man dies, indem man ein Backslash an den Quellpfad hängt (z.B. /home/hans/docs/). Der Ordner wird dementsprechend mit kopiert, wenn man den Backslash weglässt (z.B. /home/hans/docs).
Nützliche Optionen sind unter anderen:
- -a um rekursiv (-r) zu kopieren und dabei Rechte (-p), Gruppenrechte (-g), Zeiten (-t) und symbolische Links (-l) sowie als Root Besitzrechte (-o) und Gerätedateien(-D) beizubehalten.
- -v für die Ausgabe der Informationen über die kopierten Dateien (und eine kleine Zusammenfassung zum Schluss). Je mehr -v, desto umfangreicher die Ausgabe. Mehr als zwei -v sind allerdings nur für Debuggingzwecke ratsam. Zwei -v bewirken, dass nicht nur alle transferierten Dateien angezeigt werden, sondern auch solche, die übersprungen werden. Außerdem ist die Zusammenfassung am Ende umfangreicher.
- -P um eine Fortschrittsanzeige anzuzeigen (--progress) und bei Abbruch ab der Abbruchstelle weiterzukopieren (--partial).
- -n für einen Testdurchlauf ohne Änderungen
- -z für die Komprimierung der übertragenen Dateien (Diese kann auch über '-e "ssh -C"' eingeschaltet werden)
- -e für die Definition der Remote-Shell (z.B. ssh)
- -b sichert alle veränderten (auch durch --delete gelöschten) Dateien
- --exclude=REGEXP schließt alle aus der Quelle betroffenen Dateien vom Kopiervorgang aus
- --delete löscht alle Dateien des Ziels, die in der Quelle nicht vorhanden sind
- -W vermeidet die Prüfung der einzelnen Blocks und kopiert stattdessen die gesamte Datei. Das ist besonders bei großen Dateien nützlich.
Beispiele
$ rsync -avPzbe "ssh -p 667" --delete --backup-dir=/home/hans/Sicherung/Alt peter@rechner:/tmp/ /home/hans/Sicherung
Kopiert die Temporärdateien von einem entfernten Rechner über die SSH mit Port 667 auf den lokalen Rechner. Weiter werden die vorherigen Sicherungen und alle Dateien in /home/hans/Sicherung/, die nicht in /tmp/ liegen, nach /home/hans/Sicherung/Alt verschoben.
# rsync -a --sparse --delete --delete-excluded --exclude-from=/root/excludelist / /mnt/sdb/backup
Kopiert alle Dateien und Ordner beginnend in / auf eine externe Festplatte, welche vorher nach /mnt/sdb gemountet wurde. Beim Kopieren werden auch die im SRC gelöschten Elemente auch im DEST gelöscht = SYNC/MIRROR. Weiterhin werden entsprechend excludelist bestimmte Dateien und Ordner ausgeschlossen, z.B. /dev/* und /proc/* und /boot/lost+found. Wichtig ist hier, auch /mnt/sdb/* auszuschließen, da es sonst zu einem Loop kommt.