Backup mit rdiff-backup

Post date: 17.04.2010 10:25:15

Die hier aufgeführten Infos beziehen sich auf ein Linux basiertes System

Wie kann ich ein Incrementelles Backup über rdiff-durchführen?

Einfach rdiff-backup aus den Paketquelle installieren.

Ich habe mir folgendes Script angelegt (vorzugsweise unter /usr/local/bin/backup.sh) - siehe auch Dateianhang

#!/bin/bash

TARGET="/backup/local"

DATUM="$(date +%d-%m-%Y)"

### Test ob Backupverzeichnis existiert und Mail an Admin bei fehlschlagen

if [ ! -d "${TARGET}" ]; then

mail -s "Backupverzeichnis nicht vorhanden!" root <<EOM

Hallo,

das Backup am ${DATUM} konnte nicht erstellt werden. Das Verzeichnis ${TARGET} wurde nicht gefunden und konnte auch nicht angelegt werden.

Mit freundlichem Gruss Backupscript

EOM

exit 1

fi

# Backup durchführen

rdiff-backup -v5 --print-statistics --include-globbing-filelist /etc/backup-config.list / $TARGET

# erfolgreich falls nicht mail

if [ $? -ne 0 ]; then

mail -s "Backup fehlerhaft!" root <<EOM

Hallo,

das Backups konnte am ${DATUM} nicht erstellt werden.

Mit freundlichem Gruss Backupscript

EOM

exit 1

fi

rdiff-backup --remove-older-than 1W $TARGET

if [ $? -ne 0 ]; then

mail -s "alte Backupdaten löschen fehlerhaft!" root <<EOM

Hallo,

die alten Backupdaten konnte am ${DATUM} nicht gelöscht werden.

Mit freundlichem Gruss Backupscript

EOM

exit 1

fi

mail -s "Backup erfolgreich!" root <<EOM

Hallo,

die Backup wurde am ${DATUM} ordnungsgemäss durchgeführt.

Mit freundlichem Gruss Backupscript

EOM

exit 0

Dieses Script startet das Backup und sichert alles ab / in das definierte TARGET verzeichnis "/backup/local"

(das Verzeichnis muss vorher angelegt werden und existieren).

Als kleine Info schreibt das Scrpt dem root User eine Mail über den erfolg oder misserfolg des Backups

Wie grenze ich Dateien oder Verzeichnisse aus?

Dafür gibt die Datei "/etc/backup-config.list" (siehe Anhang). Innerhalb dieser Datei werden Verzeichnisse includiert bzw. excludiert (mit einem '-' zeichen davor).

In meinem Fall excludiere ich einige Verzeichnisse die nicht mitgesichert werden sollen oder dürfen.

Wie zum Beispiel das Backup Verzeichnis selbst (Schleife).

Die Datei kann an beliebiger stelle kopiert werden (falls die geändert wird, muss das Script angepasst werden) ich habe es unter "/etc/backup-config.list" abgelegt.

Beispiel:

- /cdrom

- /dev

- /lost+found

- /media

- /mnt

- /proc

- /sys

- /tmp

- /var/cache

- /var/tmp

- /var/backups

- /backup

- **/.gvfs

Für weiter Optionen bzw. Infos zu rdiff-backup einfach mal auf der Homepage nachschauen.

Wie starte ich das Backup täglich?

hierzu benutzte ich Anacron (jeder andere Scheduler tut es auch).

Bei Ubuntu ist Anacron per default schon installiert und ein täglicher Task kann einfach dadurch erzeugt werden, indem ein Script in das Verzeichnis "/etc/cron.daily" kopiert wird.

Ein beispiel für das Ausführen des oben beschriebenen Backups (Datei mit dem Namen "backup", auch im Anhang zu finden).

#!/bin/bash

ionice -c3 nice -n 19 /usr/local/bin/backup.sh >/dev/null 2>&1

Die Datei in das Cron Verzeichnis anlegen und ausführbar machen:

chmod +x backup

Das wars, jetzt sollte das Backup täglich laufen.

Randbemerkung:

durch "ionice" bzw. "nice" erreichen wir eine schonende Ausführung des Hintergrundjobs. Details hierzu kann aus dem Manuall der jeweiligen tools entnommen werden.