Blog‎ > ‎

Backup mit rdiff-backup

veröffentlicht um 17.04.2010, 03:25 von Renier Roth   [ aktualisiert: 17.04.2010, 03:53 ]

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.
ċ
backup
(0k)
Renier Roth,
17.04.2010, 03:48
ċ
backup-config.list
(0k)
Renier Roth,
17.04.2010, 03:48
ċ
backup.sh
(1k)
Renier Roth,
17.04.2010, 03:33
Comments