Home / LinuxUser / 2003 / 02 / rsync

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(243 Punkte bei 15 Stimmen)
Re: War doch klar...
(179 Punkte bei 5 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Kubuntu verliert Finanzierung
(130 Punkte bei 4 Stimmen)
Offen fürs Geschäft
(80 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Synchronschwimmen

rsync

01.02.2003 Mit dem Programm rsync [1] lassen sich lokal oder remote Dateien und Verzeichnisse synchronisieren. Dazu wird das "rsync remote-update protocol" benutzt, d. h. es wird zunächst auf Unterschiede zwischen Quelle und Ziel geprüft, bevor die eigentliche Übertragung beginnt – auf diese Weise wird das Transfervolumen minimiert.

Zu Befehl

Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

Das Programm rsync hilft beim Kopieren von Daten auf lokalen oder entfernten Systemen. Dabei sorgt es dafür, dass auf Wunsch Dateieigenschaften (z. B. Rechte oder Besitzer) und ganze Verzeichnisstrukturen beibehalten werden. Der Programmaufruf ist ähnlich wie bei rcp oder scp: rsync datei(en) ziel. Um ein Verzeichnis dir1 auf dem lokalen System rekursiv in ein anderes Verzeichnis backup zu sichern, verwenden Sie:

huhn@asteroid:~$ rsync -r dir1 backup

Die Option -r (--recursive) sorgt dafür, dass Unterverzeichnisse bis in den letzten Winkel übertragen werden. Symbolische Linkswerden allerdings davon ausgeschlossen. Ein Hinweis skipping non-regular file dir2/link verrät: Die Datei link im Unterverzeichnis dir2 ist ein Symlink und wurde nicht kopiert. Sollen diese Verweise auf andere Dateien beim Übertragen berücksichtigt werden, hängen Sie den Parameter -l (--links) an den Aufruf an: rsync -rl dir1 backup.

Sollen symbolische Links hingegen "aufgelöst" werden, verwenden Sie die Option -L (--copy-links) – die ehemaligen Verweise finden sich nun als normale Dateien im backup-Verzeichnis. Damit Dateirechtebeibehalten werden, setzen Sie den Parameter -p (--perms); für das Speichern der Timestampsdie Option -t (--times).

Die Option zum Beibehalten des Dateieigentümers (-o oder --owner) kann nur von root verwendet werden, weil kein Benutzer einem anderen einfach so Dateien schenken darf. Wie die Manpage verrät, können alle diese Parameter -rlptg in einer einzigen Option zusammengefasst werden – -a (--archive) kopiert rekursiv und behält alle Dateieigenschaften bei. Auch hier sind root-Rechte nötig.

Gemustert

Mit dem Parameter --exclude=suchmuster werden Dateien vom Kopieren ausgeschlossen, die dem angegebenen Suchmusterentsprechen. Sollen beispielsweise Files, die auf .backup enden, von der Datensicherung ausgeschlossen werden, lautet der Befehl:

huhn@asteroid:~$ rsync --exclude=@L: *.backup quelle ziel

Dabei dürfen soviele --exclude-Optionen angegeben werden, wie nötig sind, um bestimmte Dateien auszuschließen. Ähnlich funktioniert der Parameter --exclude-from=datei – in einer Datei sind alle entsprechenden Suchmuster aufgelistet (eins pro Zeile), um die Dateien zu beschreiben, die ausgeschlossen werden sollen. Natürlich geht das auch anders herum: Die beiden Parameter --include=suchmuster und --include-from=datei helfen bei der Beschreibung von Mustern, die in den Transfer aufgenommen werden sollen.

Verschlüsselt bitte

Aus Sicherheitsgründen sollte rsync am besten zusammen mit ssh verwendet werden. Die "Secure Shell" (mit den beiden Kommandos ssh für das Login und scp für die sichere Datenübertragung) sorgt dafür, dass Daten nicht im Klartext über das Netz gehen, sondern verschlüsselt werden [3]. Das Tool scp stößt beim Datentransfer schnell an seine Grenzen. Bricht ein Down- oder Upload beispielsweise einmal ab, "merkt" sich das Programm nicht, welche Daten schon übertragen wurden. Das ist ärgerlich, gerade wenn Verzeichnisse rekursiv (scp -r) oder große Datenmengen unterwegs sind. Auch eine Versionskontrolle findet in diesem Szenario nicht statt, d. h. Dateien mit gleichem Namen werden einfach überschrieben.

Der Parameter, mit dem rsync zur Verwendung von ssh überredet wird, ist -e ssh oder --rsh=ssh (definiert ein Ersatzkommando für rsh, dieses wird durch das Gleichheitszeichen übergeben). Soll dem Kommando ssh ein eigener Parameter, wie z. B. -1 (um Protokoll-Version 1 zu verwenden), mitgegeben werden, muss der ganze Aufruf in Anführungszeichen eingeschlossen werden, da rsync sonst versucht, die Option auszuwerten:

huhn@asteroid:~$ rsync -e "ssh -1" datei ziel

Die verschlüsselte Verwendung von rsync lässt sich durch Setzen einer Umgebungsvariableübrigens als Standard definieren:

huhn@asteroid:~$ export RSYNC_RSH=ssh

Nach Setzen dieser Variable darf die Option -e ssh weggelassen werden. Übrigens: rsync eignet sich zusammen mit der Option --partial prima zum Übertragen von größeren Dateien:

huhn@asteroid:~$ rsync --partial datei.avi transpluto:filme/
Password:

Auf dem anderen Server sehen Sie mit Hilfe von ls -l das partielle File:

huhn@transpluto:~$ ls -l .datei@L: *
-rw——-    1 huhn     users     3899392 Jan  6 20:31 .datei.avi.yeahkG

Bricht der Kopiervorgang ab, wird der schon transferierte Teil nicht gelöscht, sondern unter dem Dateinamen abgelegt. Nehmen Sie die Übertragung wieder auf, prüft rsync zunächst, was auf dem Zielsystem schon vorhanden ist und setzt dort wieder an.

Glossar

Symbolische Links

Ein Verweis auf eine andere Datei, der von Anwendungsprogrammen wie eben diese Datei behandelt wird. Wenn die Datei, auf die ein Symlink verweist, gelöscht wird, zeigt der Link ins Leere. Symlinks werden mit dem Kommando "ln -s quelldatei zieldatei" erzeugt.

Dateirechte

Dateien haben neben einem Eigentümer und der Zugehörigkeit zu einer Gruppe bestimmte Rechte: Das "r" steht für Leseerlaubnis ("read"), "w" für Schreibberechtigung ("write") und das "x" für die Erlaubnis, die Datei auszuführen ("executable"). Die ersten drei Zeichen gehören zum Dateieigentümer, die zweiten drei zur Gruppe und die letzte Dreiergruppe gehört zu allen übrigen Benutzern des Systems. Je nachdem welcher Buchstabe dort erscheint, darf das File entsprechend gelesen, geschrieben oder ausgeführt werden [2].

Timestamps

Die Linux-Dateisysteme speichern eine Vielzahl von Dateiinformationen ab, z. B. die Zeitpunkte ("Zeitstempel"), die seit dem letzten Dateizugriff (atime), der letzten Statusänderung (ctime) oder der letzten Dateiinhaltsänderung (mtime) vergangen sind.

Suchmuster

Allgemein bestehen diese aus zwei Komponenten: der Angabe, nach welchem Zeichen gesucht wird, und der Angabe, wie oft die gesuchten Zeichen auftreten dürfen. Zusammen mit rsync gibt es eine ganze Reihe von komplizierten Zeichenkombinationen, denen in der Manpage etliche Abschnitte gewidmet werden. Mit den gängigen Wildcardskönnen Sie aber schon die meisten Dinge abdecken.

Wildcards

Sonderzeichen, die Teile von Zeichenketten unbestimmt lassen. Ein Fragezeichen "?" in einer Zeichenkette lässt nur denjenigen Buchstaben dieser Zeichenkette unbestimmt (z. B. h?llo => hallo, hGllo, h7llo,…), an dem sich das Fragezeichen befindet, während ein Stern "@L: *" für beliebig viele verschiedene Zeichen steht (z. B. G@L: *ss => Guss, Genuss).

Umgebungsvariable

Die Shell stellt dem Benutzer Speicherplatz bereit, um bestimmte Informationen aufzubewahren und Programmen zugänglich zu machen. Diese Umgebungsvariablen (environment variables) bestehen jeweils aus dem Namen und dem zugeordneten Wert. Für die Linux-Standard-Shell bash setzen Sie diese mit export, für die csh mit dem Befehl setenv.

Infos

[1] http://rsync.samba.org/

[2] Heike Jurzik: "Rechte und Pflichten – meine oder Deine Datei?", LinuxUser 10/2000, S. 93, http://www.linux-user.de/ausgabe/2000/10/093-zubefehl/befehl9.html

[3] Heike Jurzik und Hans-Georg Eßer: "Auf der sicheren Seite – ssh und scp", LinuxUser 07/2001, S. 92, http://www.linux-user.de/ausgabe/2001/07/092-zubefehl/befehl17.html

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1659 Hits
Wertung: 69 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 03/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

N24 Stick (Huawei E173) und Ubuntu 11.04
Patrick Obenauer, 11.02.2012 11:54, 1 Antworten
Hallo zusammen! Ich benutze einen alten Laptop, der mit Ubuntu 11.04 flott und problemlos läuft....
Wie kann man beim Einsatz von Compiz die Fenster-Dekoration einstellen?
GoaSkin , 10.02.2012 20:12, 0 Antworten
Hallo, ich nutze Linux Mint mit dem Gnome-Derivat Mate. Da die Distribution Compiz nicht autom...
rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...
Skype für 64-Bit-Prozessor u. Suse 12.1
Klaus Sigerist, 05.02.2012 11:39, 3 Antworten
Hallo Gemeinde! Ich bin nur ein einfacher Nutzer und habe Probleme mit der Installation von Skyp...
8! Anfängerfrage :) Wie finde ich in Ubuntu die Datenträger (Bild, Text)
samuel leusam, 04.02.2012 15:53, 2 Antworten
Ich habe neu Ubuntu. Wenn ich die SD Karte im Laptop einstecke, erkennt er sie und gibt ihr den N...