In diesem Artikel möchte ich Ihnen das kostenlose und im Quelltext frei verfügbare Programm RsyncX vorstellen. Damit lassen sich Datensicherungen auf lokalen Festplatten oder im Netzwerk anlegen, außerdem können Sie mit entsprechenden RsyncX-Skripten auch Master-Images vom Server auf Ihre Clients kopieren. Gegenstand dieses Textes soll zunächst die Datensicherung Ihres Betriebssystems auf einer zweiten Festplatte sein, von der Sie anschließend auch booten können.
Warum RsyncX ?
Im Rahmen eines Backups gibt es verschiedene Arten der Datenübertragung (siehe auch
NetInstall, NetRestore, RsyncX ? Zeit und Geld sparen mit netzwerkbasierender Client-Installation): Sie können entweder die gesamten Daten eines Quellvolumes eins zu eins auf ein Zielmedium kopieren, oder Sie kopieren nur die seit dem letzten Backup geänderten Daten.
Letzteres eignet sich vor allem für Szenarien, in denen nur ein kleiner Teil der Daten tatsächlich geändert wird. Dies gilt vor allem dann, wenn die Daten über ein Netzwerk kopiert werden sollen. Da wohl die Mehrheit der Anwender weniger als die Hälfte ihrer Daten zwischen zwei Datensicherungen bearbeitet, stehen die Chancen nicht schlecht, dass auch Sie in Betracht ziehen sollten, nur die geänderten Daten zu sichern.
Dafür eignet sich RsyncX ebenso wie beispielsweise psync, jedoch kann es im Gegensatz zu psync auch ssh-Verbindungen zu entfernten Geräten aufbauen, um Daten dorthin zu kopieren (oder von dort zu holen). Desweiteren unterstützt RsyncX im Gegensatz zu dem in Mac OS X bereits enthaltenen rsync auch HFS+ und Ressourcen-Zweige, so dass eine Kopie des Microsoft Office v.X mit RsyncX lauffähig sein wird, die mit rsync erstellte Kopie zunächst erst mal nicht.
Und als wenn das alles noch nicht überzeugend genug wäre, so gibt es doch noch ein absolutes Killerfeature namens "rotierende Backups", die ich in einem späteren Artikel genauer erklären werde: Das erste Backup enthält eine Eins-zu-eins-Kopie des Quellsystems, die in dem beispeilhaft benannten Ordner Backup.0 liegt. Starte ich nun die zweite Datensicherung, so lässt sich RsyncX so einstellen, dass der Ordner Backup.0 in Backup.1 umbenannt wird und nur die letzten Änderungen Ihres Systems in den Ordner Backup.0 kopiert werden. Dadurch wird auf dem Zielmedium lediglich der Festplattenplatz verbraucht, der durch das erste Vollbackup und die späteren Änderungen an Ihrem System anfällt. Der Clou an der Sache ist, dass auch der Ordner Backup.0, in den Sie ja lediglich die Änderungen hineinkopiert haben, Ihr komplettes System enthält.
Bei Bedarf können Sie beispielsweise einstellen, dass die letzten zehn Datensicherungen wieder herstellbar sein sollen, so dass auf dem Zielvolume zehn Ordner mit vollständig wiederherstellbaren Systemen liegen, obwohl lediglich der Festplattenspeicher für ein Voll- und neun inkrementelle Backups benötigt wird.
Wie ist das möglich?
Ganz einfach: alle Daten, die bereits auf dem Zielvolume enthalten sind, werden durch einen Hardlink mit dem neuen Verzeichnis verknüpft, was ähnlich wie ein Alias funktioniert, aber auch dann noch funktioniert, wenn das Original im Finder gelöscht wird.
Ganz *nebenbei* bietet RsyncX eine brauchbare grafische Oberfläche an, die unter anderem auch Cronjobs verwalten und komplette RsyncX-Client-/Server-Umgebungen anlegen kann. Wenn Sie sich einen vollständigen Überblick über RsyncX verschaffen wollen, lesen Sie die
RsyncX-Website.
RsyncX installieren
Zunächst müssen Sie RsyncX erst einmal installieren. Laden Sie es
hier herunter und folgen Sie den Installationsanweisungen. Zwar habe ich das Programm bereits irgendwann im Frühjahr 2004 weitestgehend ins Deutsche übertragen, aber Kevin Boyd hat seither kein Update der Software mehr herausgegeben, so dass er die Änderungen noch nicht eingepflegt hat (Wartet er auf Tiger? Wird RsyncX Bestandteil des Betriebssystems sein? Fragen über Fragen

). Jedenfalls können Sie
hier die deutsche Lokalisierungsdatei herunterladen.
Entpacken Sie sie, klicken Sie bei gedrückter CTRL-Taste auf das RsyncX-Symbol unter /Applications/Utilities/RsyncX, und wählen Sie ´Paketinhalte zeigenª aus dem Kontextmenü. In dem Fenster, das sich nun öffnet, navigieren Sie bitte in das Verzeichnis Contents/Resources/, in dem sich der Ordner English.lproj befindet. Kopieren Sie dorthin per Drag&Drop den Ordner German.lproj, den Sie vorhin von meiner Website geladen haben. Sie werden dabei aufgefordert, Ihr Administrator-Kennwort einzugeben, was Sie einfach tun sollten (zum Thema Sicherheit arbeite ich gerade an einem weiteren Artikel...). Dies sollte nun in etwa so aussehen:
Das erste RsyncX-Skript
Öffnen Sie RsyncX nun durch einen Doppelklick auf das Programmsymbol unter /Applications/Utilities/RsyncX. Das erste Fenster, das sich nun öffnet, dient dazu, Daten ohne Automatisierungsmöglichkeit von A nach B zu duplizieren. Da wir ein Skript erstellen wollen, das auf Knopfdruck oder vollautomatisch durch einen Cronjob angesteuert werden kann, klicken Sie bitte im Tools-Menü auf "RsyncX Skriptgenerator".
Ziehen Sie nun das Quellvolume in das zugehörige Feld "Quellpfad", das Zielvolume muss in den Bereich "Zielpfad" gezogen werden. Dies funktioniert nur bei lokalen Sicherungen, wenn Sie Sicherungen über ein Netzwerk durchführen möchten, lesen Sie bitte die Hinweise auf der RsyncX-Website.
Angenommen, Sie wollten Ihr komplettes Mac OS X, das auf der Festplatte PB liegt, auf ein Volume namens PBBackup kopieren, so sähe die Skriptkonfiguration des RsyncX Skriptgenerators wie folgt aus:
Folgende Punkte sind dabei besonders wichtig:
- Der Punkt "Quelle ist bootfähiges Volume" muss aktiviert sein. Ist dieser Punkt nicht angehakt, werden auch gemountete Volumes aus dem Netzwerk kopiert, außerdem landen allerlei überflüssige Daten wie Cache-Dateien in dem Backup.
- "Als root ausführen" sollte aktiviert sein, damit wirklich alle Dateien kopiert werden können, auch die, auf die ein Benutzer sonst keinen Zugriff hat.
- Dadurch, dass in der ersten Zeile "Soll nur auf dem lokalen Gerät ausgeführt werden" ausgewählt ist, müssen Sie sich keine Gedanken über Netzwerktransport, Anmeldung an Ziel und Quelle und einige andere Punkte machen.
Klicken Sie nun auf "Erstellen", so landet in Ihrem Homeverzeichnis eine Datei namens "Vollbackup.command". Ein Doppelklick auf diese Datei führt das soeben erstellte Skript aus, jedoch sollten wir vorher noch einige weitere Dinge beachten.
Öffnen Sie das soeben erstellte Skript zunächst in einem Text-Editor, der keine Zeilenumbrüche einfügt, die Sie nicht benötigen, wie beispielsweise SubEthaEdit, pico oder vi. Um pico zu verwenden, öffnen Sie das Terminal und tippen
pico Vollbackup.command
Falls Sie die Datei umbenannt oder an einem anderen Ort in Ihrem Dateisystem abgelegt haben, tippen Sie einfach pico samt folgendem Leerzeichen und ziehen das Skript vom Finder irgendwo in das Terminalfenster - der vollständige Pfad wird dann automatisch in den Befehl eingefügt.
Nun sollten Sie in etwa Folgendes vor sich sehen:
time sudo rsync -a --exclude /dev/\* --exclude /afs/\* --exclude /private/tmp/\* --exclude /Network/\* --exclude /Volumes/\* --exclude /automount/\* --exclude /private/var/run/\* "/." /Volumes/PBBackup --eahfs --delete --showtogo ; sudo bless -folder /Volumes/PBBackup/System/Library/CoreServices
Achten Sie in pico darauf, dass alles in einer Zeile steht, anderenfalls wird das Skript später nicht funktionieren. Wichtig ist nun vor allem Folgendes: Am Anfang der Zeile steht unter anderem "sudo rsync", wodurch das Skript den Befehl rsync mit root-Rechten aufruft. Dabei gibt es allerdings ein kleines Problem. Wie bereits erwähnt, wird Mac OS X bereits mit einem vorinstallierten rsync ausgeliefert. Durch die Installation von RsyncX wird das vorhandene rsync zwar nicht berührt, allerdings wird die Verknüpfung des Befehlsaufrufs "rsync" nun umgeleitet auf das soeben neu installierte RsyncX, das auf Kommandozeilenebene unpraktischerweise nicht rsyncx sondern ebenfalls rsync heißt. Bei späteren Mac OS X-Updates kann es nun passieren, dass anschließend wieder das einfache rsync ohne HFS+- und Ressourcenzweig-Unterstützung aufgerufen wird, so dass Ihre weiteren Datensicherungen nicht mehr alle zur Wiederherstellung benötigten Daten auf das Zielvolume kopieren.
Lange Rede, kurzer Sinn: um sicher zu gehen, dass Ihre Datensicherungen auch in Zukunft sicher vonstatten gehen, schreiben Sie statt
time sudo rsync
nun
time sudo /usr/local/bin/rsync
Dadurch wird immer der absolute Pfad zu RsyncX verwendet. Dieser Punkt ist übrigens auch bei Remote-Sicherungen von besonderer Bedeutung. In einem Remote-Skript wird am Ende des Skriptes definiert, welcher rsync-Befehl auf dem Zielrechner ausgeführt werden soll. Daher muss auch dieser Zusatzbefehl als absoluter Pfad angegeben werden.
Sichern Sie nun Ihre Änderungen (in pico durch Betätigen der Tasten CTRL und O) und starten das Skript durch Doppelklick. Sobald Sie nun Ihr Administrator-Kennwort eingegeben haben, wird die Sicherungskopie angelegt. Sollte dies nicht funktionieren, oder sollten Sie sonstige Fragen haben, so finden Sie auf der RsyncX-Website ein hervorragendes Forum.
Und jetzt von allein
Sie können dieses Skript nun jederzeit manuell durch einen Doppelklick aufrufen, wenn Sie der Meinung sind, Ihre jüngst geänderten Daten wieder sichern zu müssen. Dazu lässt sich das Programmsymbol übrigens auch gut ins Dock legen.
Wollen Sie Ihre Daten aber beispielsweise jeden Tag zu einer bestimmten Uhrzeit sichern, so können Sie auch einfach einen entsprechenden Cronjob anlegen. Auch wenn die Kommandozeilenbefehle dazu in wenigen Minuten erlernt sind, so bringt RsyncX dafür ein grafisches Tool mit, das Sie unter Tools->RsyncX Zeitplaner erreichen.
Dort sehen Sie bereits die vorhandenen Cronjobs daily, weekly und monthly. Fügen Sie Ihren eigenen hinzu, indem Sie "Vorgang hinzufügen" anklicken und das gewünschte Skript auswählen (Sie sehen schon, dieses Tool lässt sich prima auch für Nicht-RsyncX-Skripte verwenden).
Wenn Sie wissen wollen, welche Werte Sie sinnvollerweise in die Felder "Monat(e)", "Datum", etc. eintragen können, fahren Sie einfach mit der Maus über das fragliche Feld und warten auf die Erklärung, die nach wenigen Sekunden erscheint.
Wählen Sie "Ereignis hinzufügen", so wird der Cronjob angelegt, so dass im Beispiel jeden Tag um 12.00 Uhr mittags eine Datensicherung durchgeführt wird. Ist der Mac zu dieser Zeit nicht eingeschaltet, wird die nächste Sicherung am folgenden Tag zur eingestellten Uhrzeit erfolgen.
Und zwischen zwei Rechnern
Noch interessanter wird dieser Vorgang, wenn Sie Daten über ein Netzwerk kopieren möchten. Auf diese Weise lassen sich beispielsweise zwei Xserve-Datenbestände abgleichen, um ein IP-Failover-System zu realisieren (falls Sie nicht sowieso schon Xsan oder zumindest FibreChannel-Switches einsetzen). Infos zu Remote-Synchronisationen finden Sie auf der RsyncX-Website, vor allem aber auch bei
Mike Bombich.