1963913

Time Machine von Mac auf Linux nutzen

11.08.2014 | 13:13 Uhr |

Auf Rechnern mit Apfel-Logo kümmert sich das Programm Time Machine vollautomatisch um das stündliche Backup aller Dateien. Wer ohne grafischen Ballast auskommt, kann die gleiche Funktionalität auf jedem Linux nutzen.

Apple versteht etwas von der Gestaltung von Programmoberflächen. Da bildet das unter OS X vorhandene Time Machine keine Ausnahme. Die Backup-Software sichert in einem festen Intervall vollautomatisch auf einen externen Datenträger. Wenn ein Dokument in einer früheren Fassung benötigt wird, begleitet die App seinen Nutzer auf einer Zeitreise. Unter Linux war das grafische Tool „Back in Time“ lange eine ansprechende Lösung, es macht aktuell aber unter vielen Distributionen Probleme. Die Grundfunktionen von Time Machine können Sie sich aber selbst zusammenbauen, denn Apple nutzt im Kern das Tool rsync, das auch unter Linux vorhanden ist.

Dieser Artikel stammt aus der LinuxWelt 4/2014

Das neue Ubuntu LTS, der große Desktop-Guide, Ihre Festplatte 20 x schneller, Linux statt Windows XP - das und mehr finden Sie in der neuen LinuxWelt 4/2014 .

Beispielcode für das automatische Backup mit rsync: Das individuelle Shell-Script schreiben Sie mit einem beliebigen Editor Ihres Systems.
Vergrößern Beispielcode für das automatische Backup mit rsync: Das individuelle Shell-Script schreiben Sie mit einem beliebigen Editor Ihres Systems.

Ihre Zutatenliste

Ihr individuelles Backup-System besteht aus wenigen Komponenten. Dazu gehört das Programm rsync, das mit hoher Wahrscheinlichkeit bereits installiert ist. Zusätzlich benötigen Sie ein Medium, auf dem die gesicherten Dateien landen. Es dient als Ziel für das Programm rsync. Ziele können für rsync ein Verzeichnis auf dem gleichen System sein, ein Verzeichnis auf einem externen Datenträger, aber auch ein Ordner auf einem Server. Ideal ist ein externes System, das über das Netzwerk erreichbar ist (NAS). Die Gesamtgröße des Backup-Mediums sollte das 30- bis 50-fache der Größe Ihres aktuellen Home-Verzeichnisses betragen, damit Sie sich eine ausreichende Historie an Backups leisten können.

Der Artikel geht davon aus, dass Sie ein NAS erfolgreich im Netzwerk eingebunden haben und die Platten auch entsprechend formatiert haben. Alle aktuellen Modelle sollten dazu in der Lage sein, das von Linux bevorzugte NFS-Protokoll (Network File System) anzubieten, was die Verbindung mit dem Linux-Rechner besonders einfach macht. Das Prinzip der zeitgesteuerten und automatisierten Sicherung ist aber selbstverständlich auch auf andere Zielmedien übertragbar, etwa auf externe USB-Festplatten.

Der perfekte Schutz für Ihr Linux-System

Der rsync-Funktionsaufruf

Zuerst müssen Sie überlegen, welche Schalter Sie rsync übergeben wollen – denn davon gibt es reichlich. Das Backup muss alle Unterverzeichnisse berücksichtigen und die Informationen über die Dateirechte speichern. Wichtig ist auch der Zeitpunkt der letzten Änderung. Symbolische Verweise (Symlinks) sind ebenfalls zu sichern, sie sollten aber als Symlinks erkennbar bleiben, um bei der Wiederherstellung keine Probleme zu verursachen. Für alle diese verschiedenen Optionen kennt rsync jeweils einen individuellen Schalter, erfreulicherweise aber auch die Sammeloption „a“: Sie steht für „Archiv“ und umfasst alle die genannten Einstellungen. Ein möglicher Aufruf sieht so aus:

rsync -aP <Quelle> <Ziel>

Erstaunlich einfach! Als „Quelle“ setzen Sie den Pfad ein, den Sie sichern wollen, also etwa das Home-Verzeichnis:

rsync -aP /home/<Benutzername> <Ziel>

Die Option „P“ ist wichtig, um eventuell unterbrochene Übertragungen wieder aufzunehmen. Zugleich zeigt rsync damit für jede Datei einen Prozessindikator. „Ziel“ ist ein Verzeichnis, das bislang noch nicht existieren sollte und in welchem die gesicherten Dateien landen. Im Fall eines Laufwerks auf einem NAS wird es sich hinter einem Mount-Punkt verbergen, etwa im Verzeichnis „/mnt“.

rsync-Einbau in ein Script

Den Aufruf von rsync betten Sie nun in ein Script ein. Sie ersparen sich damit nicht nur die Eingabe der Parameter: Erst das Script ermöglicht den zeitgesteuerten, periodischen Start des Backups. Im Script können Sie ferner mühelos Verzeichnisse ausschließen und einen sprechenden Dateinamen definieren – unter Berücksichtigung der Uhrzeit. Dazu müssen Sie entsprechende Variablen definieren und diese dann in den Funktionsaufruf integrieren. Öffnen Sie einen beliebigen Texteditor, und legen Sie eine Datei an, die Sie etwa „backup.sh“ nennen:

BACKUP_ZIEL="/mnt/dsm211" HEUTE=`date +"%d-%m-%Y-%H:%M:%S"` BACKUP_NAME="datensicherung"

Diese Zeilen definieren das Zielverzeichnis, einen sauber formatierten Zeitpunkt und den allgemeinen Sicherungsnamen. Die Datei ergänzen Sie nun um eine Reihe weiterer Zeilen:

AKTUELL_BACKUP=$BACKUP_ZIEL/${BACKUP_NAME}-aktuell NEW_BACKUP=$BACKUP_ZIEL/${BACKUP_NAME}-$HEUTE mkdir -p $NEW_BACKUP

Auf bereits definierte Variablen greifen Sie mit dem $-Zeichen zurück: „Aktuell_Backup“ berücksichtigt das Ziel sowie den Namen und hängt diesem noch einen Zusatz an. „New Backup“ setzt einen Pfad aus dem Ziel, dem Namen und der Zeitangabe fest. Aus dieser Angabe legen Sie ein neues Verzeichnis an.

rsync -aP --exclude-from='/home/sla/exclude.txt' --link-dest=$AKTUELL_BACKUP/ /home/sla$NEW_BACKUP/ rm -f $AKTUELL_BACKUP ln -s $NEW_BACKUP $AKTUELL_BACKUP
Rsync liefert auf der Konsole eine detaillierte Rückmeldung über den Fortschritt des Kopierens. So sehen Sie gerade in der Testphase, was genau passiert.
Vergrößern Rsync liefert auf der Konsole eine detaillierte Rückmeldung über den Fortschritt des Kopierens. So sehen Sie gerade in der Testphase, was genau passiert.

Damit rufen Sie rsync mit den bewährten Parametern auf. Außerdem übergeben Sie den Schalter „excludefrom“, der als Angabe eine Datei erwartet, die die Ausnahmen definiert. In dieser Datei hinterlegen Sie pro Zeile Pfad, Dateinamen oder Dateimuster, das nicht gesichert werden soll. Vorangestellt wird der Zeile immer ein Bindestrich, der die Ausnahme definiert. Solche Ausnahmeregeln sind meist sinnvoll, um den Backup-Datenträger nicht mit unnötigem Ballast zu befüllen. Gesichert wird das Verzeichnis „home/sla“ und als Ziel der Wert aus „New_Backup“ verwendet.

Die Option „link-dest“ wurde nur eingeführt, um Platz zu sparen. Sie sorgt dafür, dass rsync im Falle von nicht geänderten Dateien diese nicht physikalisch sichert, sondern nur als Link vermerkt. Das Ziel des Links ergibt sich aus der Variablen „Aktuell Backup“. Die beiden letzten Befehle entfernen das Verzeichnis „Aktuell_Backup“ und legen eine symbolische Verknüpfung an. Damit „link-dest“ seine Wirkung entfalten kann, müssen Sie das Script zunächst einmal ohne diesen Parameter ausgeführt haben. Ist das erste Backup dann erfolgreich gewesen, fügen Sie den Parameter ein, und ab sofort werden dann nur noch Links angelegt.

Das Script muss jetzt nur noch in regelmäßigen Abständen laufen. Dazu informieren Sie den Dienst Cron, der auf jedem Linux installiert ist. Wenn Sie sich nicht manuell die Cron-Tabelle („/etc/crontab“) editieren wollen, nutzen Sie das grafische Programm gnome-schedule wie im Aufmacherbild dargestellt. Diesen grafischen Scheduler gibt es nicht in allen Distributionen. In den Paketquellen von Ubuntu ist er jedoch verfügbar.

0 Kommentare zu diesem Artikel
1963913