
Timemachine unter Tiger mit Unix-Befehlen
Apple liefert kostenlos eine Backup-Software mit Mac-OS X 10.4 aus. Allerdings fehlen ein deutsches Handbuch und jedwede grafische Oberfläche. Doch rsync funktioniert – nach der mühsamen Konfiguration – im Grunde wie Timemachine.
Von Walter Mehl (28.08.2007)
Ein Unix-Programm, das man sehr gut für ein Backup nutzen kann, heißt rsync (im Ordner „/usr/bin/“, der im Finder unsichtbar ist). Es ist Open-Source-Software, die dazu gedacht ist, den Inhalt zweier Ordner abzugleichen. Man kann die Daten dabei sogar über ein Netz von einem Rechner auf einen anderen übertragen, doch für unsere Zwecke reichen ein Mac und eine externe Festplatte völlig aus.
TIPP Wir empfehlen dringend, die Sicherungskopie auf einer externen Festplatte zu speichern. Nur damit schützt man sich vor einem Crash der internen Platte im Mac. Zusätzlich schützt die externe Platte vor den Gefahren einer bis zum Limit gefüllten Backup-Festplatte – im Zweifelsfall ist bei einem solchen Überlauf das Backup beschädigt, die Originaldaten auf der internen Festplatte aber bleiben intakt.
TIPP Externe USB-Festplatten mit einer Kapazität von 500 GB nur noch wenig mehr als 100 Euro. Platten mit Firewire-Anschluss sind um einige Euro teurer, dafür benötigt das Backup über Firewire aber deutlich weniger Zeit.
Die Sicherungskopie erzeugt man mit dem Unix-Befehl rsync. Ab dem zweiten Aufruf des Skripts kommt aber zusätzlich der Befehl cpio ins Spiel, der eine identische Kopie der Sicherungskopie erzeugt und die Verzeichnisstrukturen aufrecht erhält.
Das Skript erzeugt in der aktuellen Fassung maximal vier Unterordner auf der Backup-Festplatte und benennt sie „tageskopie.0“ bis „tageskopie.3“. In jedem dieser Unterordner wird eine Sicherungskopie gespeichert.
Um eine Datei oder einen Ordner aus der Sicherung wiederherzustellen, kopiert man ihn von der externen Festplatte zurück auf die interne.
TIPP Aus Sicherheitsgründen haben wir den eigentlichen Kopierbefehl so verändert, dass er nur anzeigt, welche Dateien gesichert werden, aber den Kopiervorgang nicht ausführt. Im folgenden Text ist beschrieben, wie man diese Sicherungen entfernt und das Skript nutzbar macht.
Zwei der wichtigsten Parameter stehen im Skript ziemlich weit oben: Die Namen des Ausgangspunktes, sprich: des Benutzerordners, und der Name des Zielordners müssen als Text in das Skript eingetragen werden. Wir empfehlen, beide mit einem Trick in das Skript zu kopieren, um Tippfehler von vornherein auszuschließen (der Trick funktioniert auch in Texteditoren wie Textwrangler, Smultron, BB-Edit oder Subethaedit; dort ist der Umweg über Terminal nicht notwendig).
TIPP Man startet das Dienstprogramm Terminal und zieht den gewünschten Benutzerordner auf das Fenster von Terminal. Lässt man die Maustaste los, erzeugt das Terminal automatisch die von uns benötigte englische Namensform des Ordners. Diesen Namen wählt man mit der Maus aus – ohne den Schrägstrich am Ende – und kopiert ihn dann in das Skript. Mit diesem Trick verhindert man Tippfehler und erhält außerdem die englische Form des Namens des Benutzerordners. Nur diese Form lässt sich in unserem Skript verwenden.
In die Zeile darunter muss der Name des Ordners, der die Sicherungskopien enthalten soll. Unser Skript legt in diesem Order bei jedem Aufruf einen Unterordner an (maximal 4) und benennt den Ordner tageskopie.0, tageskopie.1 und so weiter. Wichtig ist, dass dieser Ordner bereits existiert und komplett leer ist – wir wählen hier in unserem Beispiel den Ordner „sicherungskopie“ auf der externen Festplatte „Backup“.
Die darunter erwähnte Ausnahmeliste behandeln wir später in diesem Artikel.
Pro Datei in dieser Liste erzeugt rsync eine Zeile im Terminal und nennt dort den vollen Namen – sprich: die Zeile dau/Desktop steht zum Beispiel für den Ordner „Schreibtisch“ im Privatordner des Benutzers „dau“ (= /Benutzer/dau ).
Bevor man aber diese Option aus dem Skript löscht und es zum ersten Mal startet, muss noch der folgende Schritt erledigt werden: Die Definition der Dateien und Ordner, von denen wir keine Sicherungskopie anlegen wollen.
Den Inhalt des Papierkorbs und die zahlreichen Zwischenspeicher („Cache“) verschiedener Programme wollen wir nicht in die Sicherungskopie aufnehmen. Deshalb erzeugen wir mit unserem Texteditor die Datei „ausnahme_vom_backup“, die wir direkt im Benutzerordner speichern (oder in einem beliebigen anderen Ordner innerhalb dieses Benutzerordners).
Wer die vordefinierte Datei übernimmt, erhält eine Sicherungskopie, in der der Inhalt des Papierkorbs und die Cache-Dateien fehlen. Wer weitere Ordner vom Backup ausnehmen will, sollte die Ausnahmeliste in einem Texteditor öffnen und die Ordner einfach aus dem Finder in eine neue Zeile der Ausnahmeliste ziehen.
Da rsync den Benutzerordner als den obersten Punkt in der Ordnerhierarchie ansieht, muss man aber Anfang und Ende dieser Zeile verändern und die Buchstaben „/Users“ löschen. Wer beispielweise den Ordner „Filme“ beim Backup überspringen will, zieht ihn vom Finder in den Texteditor und verkürzt (in unserem Beispiel mit dem Benutzer „dau“) den Eintrag von „/Users/dau/Movies“ auf „/dau/Movies“.
Dann speichert man das Skript an einer beliebigen Stelle (zum Beispiel im Ordner „Dokumente“ im Benutzerordner) und startet das Dienstprogramm Terminal. Denn im Moment ist das Skript nur eine Textdatei – erst nach einer Änderung in der Unix-Befehlszeile lässt sich dieses Skript im Terminal starten.
Für die Änderung braucht man den Befehl „chmod“, mit dem man Attribute einer Datei ändert. Wir müssen bei unserem Skript das Execute-Bit setzen, damit sich die Datei in der Unix-Befehlszeile ausführen lässt.
chmod +x /Users/dau/rsync_backup_taeglich
Sprich: Man tippt im Fenster von Terminal „chmod“, ein Leerzeichen, „+x“ und ein weiteres Leerzeichen ein. Danach zieht man das Skript vom Finder auf das Fenster von Terminal. Terminal fügt den vollen Dateinamen in die Befehlszeile ein. Dann wechselt man zurück zum Dienstprogramm Terminal und führt diese Zeile mit einem Druck auf die Eingabetaste aus.
Um das Skript auszuführen, tippt man dann den vollständigen Pfad ein. Bei uns im Beispiel wären das also die folgenden Zeilen und betätigt anschließend den Zeilenschalter.
/Users/dau/Documents/rsync_backup_taeglich
Damit sind alle Vorbereitungen abgeschlossen. Das Skript kann laufen. Wir empfehlen einen ersten Versuch mit der Option „--dry-run“. Denn damit sieht man sofort, ob alles funktioniert oder ob Fehlermeldungen das Backup verhindern.
Nach dem ersten erfolgreichen Lauf sollte man das Ergebnis sofort kontrollieren: Auf der externen Festplatte sollte im Backup-Ordner (bei uns im Test: „sicherungskopie“) der Unterordner „tageskopie.0“ existieren. Und darin wiederum steht der Benutzerordner (bei uns „dau“) mit seinem kompletten Inhalt.
Klappt die Sicherung mit dem Skript, sollte man bei nächster Gelegenheit einen Test machen und eine beliebige Datei von der Sicherungskopie zurück auf die interne Festplatte kopieren. Man muss die externe Festplatte anschließen und öffnet im Finder den gewünschten Ordner innerhalb der Sicherungskopie und zieht die Datei zurück auf die interne Festplatte. Hat alles funktioniert, sollte sich die Datei nach einem Doppelklick wie gewohnt öffnen.
In der vorliegenden Form sichert das Skript alle Dateien, Ordner und Alias-Verknüpfungen. Außen vor bleiben nur Dateien, die dem Benutzer nicht gehören: Wer eine Software auf dem Schreibtisch speichert, kann davon in der Regel kein Backup mit rsync erzeugen (außerdem werden Fehlermeldungen im Terminalfenster sichtbar). Der Grund ist die interne Struktur eines Mac-OS-X-Programms, die oft Dateien enthält, für die man nur Leserechte hat. Rsync setzt aber voraus, dass man für die zu sichernden Daten Schreib- und Leserechte hat.
Uns gefällt die Backup-Lösung mit rsync – sie ist Bestandteil des Mac-OS und damit kostenlos, schnell und funktioniert in unserem Test über mehrere Wochen zuverlässig. Da die Konfiguration und der Test aber eine gewisse Grundkenntnis der Unix-Befehlszeile voraussetzen, können wir diese Lösung nicht für Einsteiger empfehlen. Die beiden Skripte auf der Heft-CD sind zwar harmlos, doch ohne dieses Grundwissen ist es nicht einfach, die Skripte in ein sinnvolles Backup-Programm zu verwandeln.
Diese Bedingungen sollten erfüllt sein, damit das Backup klappt
- Externe Festplatte (oder eine zweite interne Festplatte)
- Texteditor (Textwrangler, BB-Edit, Subethaedit, Smultron oder andere)
- Beispiel-Skript und der Liste jener Dateien, die beim Backup nicht gesichert werden
- Grundkenntnisse der Unix-Befehlszeile („shell“)
1. Skript und Ausnahmeliste in den eigenen Benutzerordner kopieren.
2. Im Skript Name des Benutzerordners, Name des Backup-Ordners und Speicherort der Ausnahmeliste eintragen.
3. Skript im Dienstprogramm Terminal als ausführbar kennzeichnen.
4. Einen Testlauf mit der Skript-Option „--dry-run“ durchführen.
5. Option „--dry-run“ entfernen und erste Sicherungskopie anlegen.
Das Skript nutzt Unix-Befehle, deshalb darf es nicht mit einem Mac-Editor wie Word erstellt oder geändert werden. Wir empfehlen als Texteditor Smultron von Peter Borg (deutsche Oberfläche) oder Textwrangler von Barebones (englische Oberfläche) – beide sind kostenlos im Internet erhältlich.
Newsletter bestellen: Newsletter und Wochenchronik
Das könnte Sie auch interessieren:
Mehr zu diesen Stichwörtern: ac-os x, rsync, backup, time machine