Home / LinuxUser / 2006 / 04 / Dateien abgleichen mit Rsync

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 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.

Synchroner Datenstrom

Dateien abgleichen mit Rsync

Zusammenarbeit

Rsync arbeitet nicht nur auf dem lokalen Rechner, sondern synchronisiert auch Daten übers Netzwerk. Dazu übergeben Sie im Programmaufruf -e ssh, und die Dateien wandern verschlüsselt über das SSH-Protokoll hin und her. Ersetzen Sie weiterhin Quelle oder Ziel durch Namen oder IP-Adresse des entfernten Rechners. Verwenden Sie dort einen anderen Benutzernamen als auf der eigenen Maschine, stellen Sie den Usernamen voran gefolgt vom Zeichen @: rsync -e ssh Quelle user@zielrechner:ziel/ .

Nach dem Doppelpunkt geben Sie entweder einen relativen Pfad zum eigenen Home-Verzeichnis oder einen absoluten Pfad im Dateisystem des entfernten Rechners an. Ein Umgebungsvariable erspart Ihnen die Eingabe des Parameter zum SSH-Verschlüsseln bei jedem Aufruf. Für die Bash lautet der Aufruf:export RSYNC_RSH=ssh

Da dieses jeweils nur für die aktuelle Shell gilt, machen Sie das Verhalten dauerhaft, indem Sie diese Zeile in die Bash-Konfigurationsdatei ~/.bashrc schreiben und diese mit dem folgenden Befehl source ~/.bashrc neu einlesen.

Datenschaufel

Rsync eignet sich ideal zum Übertragen großer Datenmengen. Setzen Sie den Parameter --partial ein und der Transfer bricht ab, setzen Sie das Übertragen der Daten zu einem späteren Zeitpunkt fortsetzen an der gleichen Stelle fort. Verwenden Sie zusätzlich die Option --progress, um den Fortschritt beim Übertragen immer im Blick zu haben:

$ rsync --progress --pa↩rtial debian.iso transpluto:/scr↩atch/debian/
Password:
debian.iso
    22543992   3%    5.15MB/s   ↩
0:02:14

Auf der Gegenseite sehen Sie die partielle Datei zunächst versteckt im Zielverzeichnis. Rufen Sie dort den Befehl ls -a auf, sehen Sie eine Datei nach dem Muster .debian.iso.wtKNr7. Der Punkt am Namensanfang sorgt dasfür, dass Sie normalerweise nicht sichtbar ist, und die willkürliche Endung verhindert ein versehentliches Überschreiben einer ähnlich benannten Datei.

Nach dem Transfer oder bei einem Abbruch, trägt die Datei wieder den Originalnamen. Bei einem eventuellen Abbruch starten Sie den Transfer einfach mit der Option --partial neu. Rsync schaut zunächst nach, wieviele Bytes schon vorliegen und überträgt nur den fehlenden Rest.

Einen Nachteil hat die Option --partial dennoch: Verwenden Sie Rsync, um eine bereits vorhandene Datei zu aktualisieren und der Transfer bricht ab, verschwindet die Datei auf dem Zielrechner und wird durch den übertragenen Teil ersetzt. Sie umgehen dieses Problem, indem Sie zunächst von dem Original einen Hardlink anlegen: ln debian.iso debian_orig.iso. Bricht nun der Transfer ab, verschwindet nicht etwa das ISO-Image. Lediglich die partielle Datei bekommt einen neuen Namen, und das Original ist noch da.

Daten unisono

Ein weiterer Synchronisierungs-Künstler kommt in Form von Unison [1] – ein Tool, dass nicht nur in beide Richtungen abgleicht, sondern darüber hinaus über den Tellerrand des eigenen Betriebssystems hinwegschaut: Das Programm gibt es nicht nur für Linux, sondern auch für Windows-Systeme, Mac OS X und Irix wie ein Blick in den Download-Bereich der Website verrät.

Wie der Artikel unter [2] zeigt, gibt es neben der grafischen Variante auch die Möglichkeit, Unison auf der Kommandozeile einzusetzen. Um zwei Verzeichnisse auf einem lokalen Rechner abzugleichen, tippen Sie beispielsweise: unison -ui text ordner1 ordner2.

Unterscheidet sich der Inhalt der beiden Ordner, weist Unison darauf hin, und zeigt an, in welche Richtung der Abgleich stattfinden wird und ob es sich um eine neue oder geänderte Datei handelt:

ordner1        ordner2
new file —->            kap01.↩
tex  [f]
<—-  changed            kap02.↩
tex  [f]

Um den Vorschlag anzunehmen, drücken Sie einfach [F]. Gibt es einen unlösbaren Konflikt, etwa weil sich beide Versionen seit dem letzten Programmaufruf verändert haben, zeigt Unison über <-?-> an, dass es von Ihnen eine Entscheidung erwartet. Geben Sie dazu beispielsweise < oder > ein; alternativ überspringen Sie den Schritt dieses eine Mal über Eingabe von [Umschalt-7] (/) oder auch in zukünftigen Sitzungen über [Umschalt-I].

Eine Übersicht aller verfügbaren Kommandos erhalten Sie, wenn Sie [Umschalt-ß] (?) tippen. Ganz zum Schluss fragt das Programm zur Sicherheit noch einmal nach, ob Sie die Änderungen wirklich durchführen wollen; geben Sie [Y] ein, um die Synchronisierung anzustoßen.

Proceed with propagating updates? [] y
Propagating updates
UNISON started propagating changes at 20:20:34 on 28 Feb 2006
[BGN] Copying einl.tex
  from /home/huhnix/ordner1
  to /home/huhnix/ordner2
…
Saving synchronizer state
Synchronization complete

Ebenso einfach gestaltet sich die Kontaktaufnahme zu einem entfernten Rechner. Stellen Sie zunächst sicher, dass auf beiden Maschinen dieselbe Unison-Version installiert ist und tippen dann unison -ui text ordner1 ssh://user @zielrechner /ordner1.

Die Syntax sieht etwas anders als bei Rsync aus: Anstelle des Doppelpunkts steht hier ein Schrägstrich – um einen absoluten Pfad anzusprechen, geben Sie einen weiteren Schrägstrich ein: unison -ui text ordner1 ssh://user @zielrechner //scratch/ordner1.

Glossar

Symlinks

Ein Symbolischer Llink (oder Softlink) zeigt als Verweis auf eine andere Datei. Anwendungsprogramme behandeln diesen genau wie die Datei selbst. Löschen Sie die Datei, auf die ein Symlink verweist, zeigt der Link ins Leere. Symlinks erzeugt das Kommando ln -s Quelle Ziel .

Device-Dateien

Der Zugriff auf Geräte findet unter Linux durch entsprechende Dateien statt, die typischerweise im Verzeichnis /dev liegen. Hier finden sich Character und Block Devices: Auf Character Devices (wie zum Beispiel Terminals oder die serielle Schnittstelle) greifen Sie sequentiell, also Zeichen für Zeichen, zu. Von den Block Devices (Festplatten, Disketten oder DVD-Laufwerke) liest das System die Daten immer in Gruppen.

Wildcards

Wildcards ersetzen Teile von Zeichenketten. Ein Fragezeichen ? in einer Zeichenkette lässt nur einen Buchstaben dieser Zeichenkette unbestimmt. Beispiel: h?llo. Auf dieses Muster passen hallo, hGllo oder h7llo. Ein Sternchen * steht für keins oder beliebig viele verschiedene Zeichen. Beispiel: G*ss. Auf dieses Muster passt Guss, Genuss oder Gss.

Hardlink

Im Gegensatz zu einem symbolischen Link handelt es sich um einen Verweis auf den I-Node einer Datei, also einfach einen weiteren Eintrag in einem Dateiverzeichnis. Linux ordnet dem Verweis nur einen Namen zu und legt nicht etwa physikalisch eine neue Datei an. Alle Hardlinks sind übrigens gleichberechtigt für den Zugriff auf die Datei – der Inhalt verschwindet erst, wenn alle Hardlinks gelöscht sind.

Infos

[1] Unison-Homepage: http://www.cis.upenn.edu/~bcpierce/unison/

[2] Unison-Artikel: Daniel Rohark, "Datentandem – Daten synchronisieren mit Unison", LinuxUser 02/2004, S. 60 ff., http://www.linux-user.de/ausgabe/2004/02/060-unison/

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 144 Punkte (10 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/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

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...