inkrementelle Datensicherung mit hardlinks und rsync

1. Einleitung

ccollect ist ein Backuptool geschrieben in der sh-skript Programmiersprache. Es braucht nichts besonderes nur die /bin/sh-Konsole (oder eine kompatible).

2. Installation

2.1. Anforderungen

Die aufgelisteten Werkzeuge müssen für das Benutzen von ccollect installiert sein:

Am besten überprüfen Sie das mit dem Befehl apt-get install bc rsync ssh. Beim Fehlen eines Werkzeuges wird dieses nachinstalliert.

2.2. Installieren

  1. Laden Sie sich die neuste Version von ccollect herunter. Diese finden Sie unter: http://unix.schottelius.org/ccollect

  2. Wechseln Sie in der Konsole mit "cd Pfad" in das Verzeichniss, indem sich das ccollect Archiv befindet. Entpacken Sie das Archiv mit "tar xvfj ccollect-$version.tar.bz2". Am Besten ist es, wenn Sie jetzt in das Verzeichniss mit den entpackten Daten wechseln: "cd 'pfad/'ccollect-'version.

  3. Danach kopieren Sie die Datei ccollect.sh aus dem entpackten Archiv nach /usr/local/bin. Das geht mit dem Befehl "cp ccollect.sh /usr/local/bin".

  4. Nun ändern Sie die Rechte für die Datei damit jeder Benutzer das Programm verwenden kann: "chmod 0755 /usr/local/bin/ccollect.sh"

  5. Erstellen Sie nun das Konfigurationsverzeichnis für ccollect: "mkdir /etc/ccollect/"

  6. Starten sie nun zum Testen das Programm ccollect mit dem Befehl ccollect.sh in der Konsole.

3. Konfiguration

3.1. Konfigurationsverzeichnisse

Die Konfigurationsdaten befinden sich bei ccollect im oben erstellten Verzeichnis "/etc/ccollect". Um ccollect richtig konfigurieren zu können benötigen Sie noch ein paar weitere Verzeichnisse:

3.2. Intervalle

Der Intervall-Wert definiert, wie viele Backup-Versionen ccollect von den gesicherten Daten behalten soll. Der Name der Datei, in der der Wert steht, ist zugleich auch der Name des Intervalls.

julian@flumy:/etc/ccollect/defaults/intervals$ ls
daily
julian@flumy:/etc/ccollect/defaults/intervals$ cat daily
7
julian@flumy:/etc/ccollect/defaults/intervals$

3.2.1. Intervall erstellen

Sie erstellen einen Intervall wie folgt:

  1. Wechseln Sie in das Intervall-Verzeichnis: cd /etc/ccollect/defaults/intervals.

  2. Erstellen Sie einen neuen Intervall mit dem Befehl "echo wert > Intervall-Name"

3.3. Sources

Mit Sourcen meint man bei ccollect die Quelldaten. Der Wert einer source-Datei verweist auf einen Pfad in dem sich die zu sichernden Daten befinden.

Im Ordner /etc/ccollect/sources/* wird festgelegt:

3.3.1. Sicherungs-Titel

Der Sicherungstitel ist der Name eines Ordners in /etc/ccollect/sources.

Man erstellt also ein neue neue Sicherung mit dem Befehl "mkdir /etc/ccollect/sources/'Sicherungs-Titel". In diesem Verzeichnis folgen dann die spezifischen Konfigurationsdaten (nur!) für diese Sicherung.

3.4. Quelle

Mit Quelle ist gemeint welche Daten gesichert werden. Dies wird in der Konfigurationsdatei source festgelegt.

Diese liegt im Verzeichnis "/etc/ccollect/sources/Sicherungs-Titel". Wechseln Sie in das Verzeichnis mit dem Sicherungs-Titel und erstellen Sie die Datei mit "echo Quellpfad > source".

3.4.1. Exclude

Es kann vorkommen das man in einem Verzeichniss alles sichern will bis auf ein paar Unterordner. Für dieses Vorhaben gibt es die Datei exclude, die sich wiederum im Verzeichnis Sicherungs-Titel befindet.

Die Datei wird mit folgenden Schritten angelegt:

  1. "echo 'Quellpfad/verzeichnis1 > exclude" Ein Pfad wird weggelassen.

  2. "echo Quellpfad/verzeichnis2 >> exclude" Ein weiterer Pfad der weggelassen wird. Das zweite > bewirkt, das an die 'exclude-Datei angefügt wird (das einfache > ueberschreibt eine vorhandene Datei).

3.5. Ziel

Mit dem Ziel ist gemeint wohin die Sicherung gespeichert wird. Dies geschieht mit einer Verknüpfung (Link), die destination heisst.

Erstellen Sie diese mit den Befehlen
Important

Es darf immer nur eine source, destination, und exclude Datei vorhanden sein.

3.6. Spezielles

Im Ordner "/etc/ccollect/sources/Sicherung" kann man weitere Daten einfügen und damit Optionen ein- oder auszuschalten.

verbose

Beim Sicherungsvorgang ausführlich berichten (-v für rsync).

very_verbose

Beim Sicherungsvorgang sehr ausführlich berichten (-v für rsync, mkdir, cp und rm).

summary

ccollect erstellt beim Beenden des Sicherungsvorganges eine Zusammenfassung des Geschehenen.

rsync_option

Alle Befehle in dieser Datei zu rsync werden ausgeführt beim Sicherungsvorgang.

pre_exec

Die Befehle im Inhalt dieser Datei werden vor dem Backup ausgeführt.

post_exec

Die Befehle im Inhalt dieser Datei werden nach dem Backup ausgeführt.