Synchronisieren mit rsync – Teil I

rsync dürfte den Leuten aus der Linuxwelt bekannt sein – und man kann froh sein, dass es Umsetzungen für Windows gibt. rsync ist mächtig – definitiv. Doch wenn man einige wenige Sachen beachtet, dann ist es wirklich simpel. rsync lässt sich via Kommandozeile steuern und am Ende dieses Beitrags gibt es ein portables Paket zum Ausprobieren – denn um Ordner zu synchronisieren benötigt man nicht zwingend ein fettes, installiertes Programm. Ich fange hier im Beitrag mit ganz einfachen Dingen an, die sich für mich als nützlich erwiesen haben – sollte Interesse an tiefergehenden Anleitungen bestehen, so werde ich diese gerne schriftlich hier festhalten. Alternativ lohnt sich immer ein Blick in die Kommentare – denn dort werden oftmals Problemlösungen und andere Möglichkeiten diskutiert.

Das Starterpaket als solches könnt ihr am Ende dieses Beitrags herunterladen. Entpackt es und ihr werdet folgenden Inhalt sehen:

Um die ersten kleinen Schritte zur Ordnersynchronisation selbst zu gehen, müsst ihr die Datei backup.cmd mit einem Texteditor öffnen.

Wundert euch nicht über die Schreibweise und die Slashes. Nehmt es einfach als gegeben hin. In meinem Beispiel wird der Programmordner von Firefox in ein Backupverzeichnis gesichert. Wenn Ordnernamen Leerzeichen enthalten, so müssen diese in Anführungszeichen gesetzt werden – pauschal kann man das sich aber dauerhaft angewöhnen. Zu erwähnen wäre, dass zumindest der Ordner Backup vorhanden sein muss, da rsync nur eine Ebene nach unten Ordner erstellt (in dieser Konstellation).

Der so eingestellte Synchronisationsvorgang sichert alle Dateien inkrementell – heisst: eine Vollsicherung, danach nur geänderte ( inklusive Löschvorgang), falls von euch Quelldaten gelöscht wurden.

Wie bereits erwähnt – dies ist nur ein sehr kleiner Anriss, den ich bei Interesse gerne weiter ausbaue – denn schließlich könntet ihr auch auf einem Server sichern – oder Daten von einem FTP sichern. Die Möglichkeiten sind vielfältig.

Wer bereits Erfahrungen oder weitere Tipps parat hat – immer her damit =)

Download rsync

Gefällt dir der Artikel? Dann teile ihn mit deinen Freunden.

Hallo, ich bin Carsten! Baujahr 1977, Dortmunder im Norden, BVB-Getaufter und Gründer dieses Blogs. Auch zu finden bei Twitter, Google+, Facebook, Instagram und YouTube. PayPal-Kaffeespende. Mail: carsten@caschys.blog

14 Kommentare

  1. Sehr geil! Habe schon viel von rsync gehört, wusste aber noch von keinem Windows-Port. Bei den üblichen Verdächtigen wie AllwaySync, SyncToy und Konsorten stoße ich recht schnell an die Grenzen. rsync soll da sehr viel flexibler und quasi DIE Referenz sein.

    Ich werde gleich mal deinen kleinen Test ausprobieren und würde mich über spätere, genauere Anleitungen freuen!

    Unter Linux machen wohl viele Leute nur mit rsync ihre Systembackups, ich glaube sogar incl. Bootsektor etc… geht das wirklich? Ist sowas auch unter Windows drin?

  2. Schöne Sache. Das werd ich definitv mal ausprobieren.

    Drei Fragen habe ich allerdings:
    Ist „cygdrive“ ein anzuwendenes Keyword, damit rsync „weiß“, dass es mit einem Laufwerk agieren soll? Oder wofür steht dies?

    Wie wird erkannt, ob und was im sich Ordnerinhalt geändert hat? MD5-Hashwert?

    Du sprichst in dem Beitrag von Synchronisation, aber in diesem Fall ist diese doch „nur“ einseitig, oder? Also wenn ich im Backup-Ordner eine Datei hinzufüge, wird sie nicht auf der Festplatte hinzugefügt, oder doch?

    PS: Kann es sein, dass in der Kommentarfunktion normale Zeilenumbrüche ignoriert werden? (Zumindest in der Vorschau)

  3. …oder Daten von einem FTP sichern.

    Hast Du dazu auch unter Windows mit rsync eine Anleitung, weil ich dazu bisher unter Windows noch keine Anleitung gefunden habe und meine Versuche sind kläglich gescheitert meine Daten von einem FTP Server zu sichern…

  4. Robocopy macht das auch

    Vorteil: bei Vista standardmäßig mit dabei, für XP bei MS zum download bereit

  5. Ich nutze ebenfalls intensiv das rsyncbackup-Script aus der ct.
    Die Verwendung von NTFS-Hardlinks spart eine Menge
    Speicherplatz, führt aber dazu dass die Festplatte bei großen Datenbeständen immer langsamer wird, da zusätzliche Dateiattribute nicht mehr in der MFT gespeichert werden, sondern als zusätzliche Datei außerhalb der MFT gelagert werden.

    Ist “cygdrive” ein anzuwendenes Keyword, damit rsync “weiß”, dass es mit einem Laufwerk agieren soll? Oder wofür steht dies?

    Das Cygwin-Paket dient eigentlich dazu, eine Linux-Shell-ähnliche Umgebung auf einem Windows-System zu haben. Dabei werden Massenspeicher eben über den Umweg /cygdrive/c/foo/bar angesprochen, statt direkt über /dev/hda1/foo/bar

  6. Rsync ist nicht wirklich zum syncen da. es ist eigentlich nur ein Backupprogramm.

    Soweit ich weiß vergleicht es Zeilenweise die Hashwerte einer Datei. Rsync kopiert auch nur die Änderungen einer Datei.

  7. Hätte mal zwei Fragen dazu: Erledigt rsync auch Dateien wie ntuser.dat?
    Kann man unter Windows gesicherte Dateien z.B. unter BartPE od. besser noch Linux wieder zurückschreiben?
    M.

  8. Erledigt rsync auch Dateien wie ntuser.dat?

    Nein. Rsync kann nur Dateien sichern, auf die der Anwender auch Zugriff hat. Das geht aber bei der ntuser.dat nicht.

    Außerdem kopiert rsync keine geöffneten Dateien.

    Übrigens, im Windows-only-Netz scheint mir robocopy deutlich schneller zu sein, vor allem beim Aufbau der Dateiliste zu Anfang des Kopiervorgangs.

  9. Ey, du machst mir Angst:
    http://j-sys.de/index.php/2008/10/28/telepathie

    Schon wieder das gleiche Thema zur gleichen Zeit, diesmal bist aber du schneller. 😉

  10. Ich hab hier noch einen Artikel aus PC Magazin herumliegen, der auf rsync und verwandte Tools wie Jido und Xdelta eingeht. Vielleicht ist ja für Dich die eine oder andere Anregung dabei:

    http://cdprojekte.mattiasschlenker.de/Public/Artikel/PC-Magazin_Linux_2007_05_-Binaeres_Puzzlespiel_-Jigdo_Xdelta.pdf

  11. Rsync ist ja ganz nett, das Hauptproblem ist aber, dass es im Gegensatz zu robocopy (was ich immer für solche Zwecke benutze) keine Windows-Rechte kopieren kann. Das macht es (und auch andere ähnliche von Unix portierte Lösungen) für mich unbrauchbar. Was habe ich von einem Backup, wo mir bei einem Restore alle Rechte flöten gehen? Das geht vielleicht gerade noch für die eigenen Dateien, wo man die Rechte einfach von Hand wieder setzen kann.

  12. @Thomas: das habe ich im Nachhinein auch bemerkt, sodass ich momentan an einer griffigen Robocopy-Lösung bastle.

  13. Unter unixoiden Systemen hat man das gleiche Problem mit ACLs. Rsync kann ja nur UGO-Zuordnungen sichern. Man behilft sich dann damit, mit „getfacl“ Listen der ACLs zu erstellen, die man mit „setfacl“ nach einem Restore anwenden kann. Soetwas ähnliches müsste es doch auch unter Windows geben?

    Übrigens: Bei OS X ist ein gepatchtes Rsync dabei, das Ressource Forks mitkopiert. Da das Kopieren der Windows-Rechte kein Eingriff in den Rsync-Algorythmus darstellt, sollte eine analoge Nachrüstung so schwer nicht sein — man müsste allerdings das Rsync von der Cygwin-Dateisystem-Abstraktionsschicht befreien…

  14. Bleibt immer noch die Sache mit 260 Zeichen / geöffneten Dateien unter WIN afaik…