Rsync macht den Unterschied

Die Aufgabe, ein Backup eines Teils des Dateisystems eines Webservers zu erstellen, konfrontiert einen Windows-User gewöhnlich mit dem Problem, dass Linux (vorherrschend auf Webservern) auf Dateisystemebene nicht von Windows unterstützt wird.

Wenn ein Archiv auf dem Server erstellt wird, dann kann dieses selbst durchaus unter Windows gespeichert werden. Beim Entpacken unter Windows würde aber nur die »halbe Wahrheit« erscheinen. Das ist kein wirkliches Problem, da auch ein Restore auf dem (Linux-) Server geschehen müsste. Es degradiert jedoch den lokalen Rechner zum Client und Massenspeicher.

SSH-Client unter Windows

SSH-Client unter Windows

Windows kennt gewöhnlich den Befehl (das Programm) ssh nicht, sodass man es sich erst besorgen muss, wenn man einen etwaigen SSH-Zugang des Servers unter Windows nutzen möchte. Mit

tar -cjf uploads.tar.bz2 uploads

kann man dann z.B. ein Archiv uploads.tar.bz2 des Ordners uploads auf dem Server erzeugen. Mit

tar -tvf uploads.tar.bz2

zeigt sich, dass im Archiv »owner«, »permissions«, »timestamps«, symlinks u.s.w exakt wie beim Original gesetzt sind.


Möchte man jedoch rsync für die Backups (Mehrzahl!) nutzen, so sollte man aus den genannten Gründen ein Linux verwenden, obwohl es rsync auch für Windows gibt. Mit andLinux lässt sich z.B. ein Ubuntu-Linux-Derivat (im Mai 2009: jaunty) unter Windows installieren, das nur 2-3 Gigabyte Plattenplatz benötigt. Es wird weder eine eigene Partition noch ein Reboot verlangt, denn andLinux basiert auf coLinux (= Cooperative Linux). Auf der deutschsprachigen Site andlinux.de findet man auch gleich eine Anleitung zur Installation von XAMPP.

Mit Mokafive, einer auf VMware basierenden Virtualisierungssoftware, kann man sich sogar ein beliebiges Linux auf USB-Stick installieren.

Rsync lässt sich gegebenenfalls per

     apt-get install rsync 

nachinstallieren.

Mit rsync lässt sich (als root) die perfekte Kopie einer Website unter Linux erstellen.

mysqldump
Datenbank erstellen
Typo3-Quellen kopieren
Website kopieren

Wie perfekt die Kopie ist, zeigt sich beim Versuch, die Site auf dem lokalen Rechner im Browser darstellen zu lassen.

localconf.php anpassen
Seitenaufruf
Besitzerwechsel

Es ist klar, dass XAMPP nicht automatisch die gewohnte Serverumgebung (ImageMagick etwa) bietet. Trotzdem lässt sich das Backup kontrollieren.

Noch ein Fehler
Es darf etwas mehr sein
Neustart von XAMPP
Der Lohn der Mühe

Was rsync zum Mittel der Wahl macht, zeigt unter anderem ein erneuter Aufruf von rsync, der die Änderungen zur lokalen Kontrolle per XAMPP zurücknimmt. Da kaum Daten übertragen werden müssen, ist das in wenigen Sekunden erledigt. Es spielt fast keine Rolle, wie groß die zu synchronisierende Datenmenge ist. Es ist die Menge der geänderten Daten, die von Relevanz ist. Somit sind fast schon instantane Backups möglich.

Rsync löscht eine Datei, die geändert werden muss, und erzeugt sie neu. Dadurch ist eine Kopie als Hardlink »cp -al original backup«, die fast keinen Speicherbedarf hat, sicher. D.h. die Hardlinks der Dateien werden aufgelöst, wenn ein erneuter rsync-Aufruf Dateien in original ändert. Somit eignet sich rsync sehr gut für inkrementelle Backups (vgl. rsnapshot).

Mit ssh ist rsnyc auch bei der Datenübertragung sicher.

Rsync erzeugt ein perfektes Abbild des Originals mit der Einschränkung, dass bei sukzessiven Backups keine Datei im Backup jemals gelöscht wird.

Rsync muss auf dem lokalen Rechner und dem Server installiert sein. Ssh ist wünschenswert aber nicht zwingend erforderlich.

Wenn rsync auf dem Server fehlt

Wenn rsync auf dem Server fehlt

Falls rsync vom Provider nicht installiert ist, kann es unter Umständen dennoch benutzt werden, denn es lässt sich aus den Quellen unter http://www.samba.org/rsync/ so kompilieren, dass kaum Abhängigkeiten bestehen. Da beim Aufruf der lokalen rsync-Version der Pfad der Server-Version angegeben werden kann

       sudo rsync --rsync-path=files/rsync -aze ssh user@host:html ./

ist die einzige Voraussetzung, dass sich überhaupt ein Programm auf den Server kopieren und dort ausführen lässt.