wfmedia.ch

rsync

rsync ist ein Programm, um Dateien zwischen lokalen oder über das Netzwerk erreichbaren Pfaden abzugleichen. Dabei werden zunächst die Größe und die Änderungszeit der Dateien in Quelle und Ziel verglichen ("Quick Check"-Algorithmus), so dass nur die Dateien behandelt werden müssen, bei denen es Änderungen gegeben hat. Sind Quelle und Ziel lokale Pfade, werden die betroffenen Dateien normal kopiert. Wenn auf Quelle oder Ziel aber per SSH oder über einen speziellen rsync-daemon zugegriffen wird, nutzt rsync zusätzlich noch einen speziellen Delta-Transfer-Algorithmus, so dass nur die geänderten Teile der Dateien über das Netzwerk transportiert werden müssen.

Installation
rsync ist im gleichnamigen Paket enthalten, welches standardmäßig unter Ubuntu installiert ist. Sollte das Programm fehlen, lässt es sich wie folgt installieren:
rsync

Verwendung
Die Syntax des Befehls im Terminal sieht folgendermaßen aus:
rsync [OPTIONEN] QUELLE(N) ZIEL
Anstelle des Platzhalters QUELLE gibt man den Ort an, aus dem gelesen werden soll, und das ZIEL bestimmt den Ort, in den rsync kopieren soll. Gibt man nur einen Parameter an, so wird dieser als Ziel interpretiert, und es gilt das aktuelle Verzeichnis als Quelle.

Optionen
Es ist empfehlenswert, die Option -a immer zu benutzen, um alle Rechte und Eigentümer der Quelldatei auf dem Zielmedium zu übernehmen:
-a fasst folgende Optionen zusammen:
-r kopiert Unterverzeichnisse
-l kopiert symbolische Links
-p behält Rechte der Quelldatei bei
-t behält Zeiten der Quelldatei bei,
-g behält Gruppenrechte der Quelldatei bei
-o behält Besitzrechte der Quelldatei bei (nur root)
-D behält Gerätedateien der Quelldatei bei (nur root)

Option Beschreibung
-u überspringt Dateien, die im Ziel neuer sind als in der Quelle
-v zeigt während des Synchronisierens alle ausgeführten Schritte an
-x berücksichtigt nur Objekte, die sich im selben Dateisystem befinden
-P aktiviert folgende Optionen:
--progress Fortschrittsanzeige beim Transfer anzeigen
--partial Fortsetzung des Transfers bei Abbruch
-n simuliert nur was passieren würde ("dry run")
--bwlimit z.B. --bwlimit=30 limitiert die Bandbreite, die genutzt werden soll (Hilfreich, da rsync sonst die gesamte verfügbare Bandbreite in Anspruch nimmt und sonstige Anwendungen damit blockiert)
--ignore-existing Überspringt die vorhandenen Daten und schreibt nur die neuen
-z aktiviert die Komprimierung für die Datenübertragung (diese Option ist sinnvoll, wenn zwischen Quelle und Ziel eine langsame Verbindung besteht)
-e wählt die remote shell aus, die meisten werden SSH nutzen. Also -e ssh
-E behält die Ausführbarkeit von Dateien bei
--exclude=Muster schließt ein bestimmtes Muster von der Sicherung aus
--exclude=ORDNER1 --exclude=ORDNER2 schließt ORDNER1 und ORDNER2 von der Sicherung aus
--delete vergleicht Quellverzeichnisse und Zielverzeichnisse und sorgt dafür, dass Dateien, die im Quellverzeichnis nicht (mehr) vorhanden sind, im Zielverzeichnis gelöscht werden. Dies kann dazu führen, dass man ungewollt Dateien löscht, die man aber noch in der Sicherung behalten möchte.
-b sorgt dafür, dass durch die Option --delete gelöschte sowie alle veränderten Objekte gesichert werden (siehe dazu folgende Option --backup-dir=)
--backup-dir=Verzeichnis gibt ein Verzeichnis für die gelöschten und geänderten Objekte an, siehe Option -b
-c aktiviert einen Dateivergleich, basierend auf Prüfsumme und nicht auf Größe und Zeitstempel. Die eigentliche Prüfsummenbildung dauert deutlich länger als der Vergleich Größe und Änderungs-Zeitstempel; andererseits werden überflüssige Kopiervorgänge (z.B. bei nur geänderter Änderungszeit) vermieden.
--iconv sorgt für eine Konvertierung der Dateinamen zwischen Systemen mit verschiedenen Codepages. Dieser Parameter kann erforderlich werden, wenn Dateien mit z.B. Umlauten im Namen übertragen werden.
-h, --human-readable verwandelt Zahlen in den log Dateien und auf stdout in ein besser für Menschen lesbares Format. Große Zahlen werden zu K (kilobytes), M (megabytes), oder G (gigabytes). Wenn diese Option angegeben wird ist K (1000), M (1000*1000), und G (1000*1000*1000). Wenn diese Option doppelt angegeben ist (-hh), wird mit 1024 anstelle von 1000 gerechnet.
-H Hardlinks werden berücksichtigt
--stats zeigt einen ausführlicheren Bericht am Ende einer Übertragung an.
--size-only sorgt dafür, dass Dateien mit gleicher Dateigröße übersprungen werden, unabhängig davon, ob sie sich in anderen Eigenschaften unterscheiden. Hilfreich bei Sicherungen auf Datenträger mit den Dateisystemen FAT oder NTFS, welche die unter Linux für die Verwaltung der Besitz- und Zugriffsrechte verwendete UNIX-FACL nicht unterstützen.
--progress zeigt den Fortschritt des Kopiervorganges an.
back