Im Betrieb von Linux Servern ist eine einfache und automatische Backup Lösung wünschenswert.

#!/bin/sh

umask 077
if [ ! -d /home/backup ]; then
  mkdir /home/backup
fi

if [ -f /etc/redhat-release ]; then
  rpm -qa --qf '%{NAME} ' > /home/backup/rpm.txt
elif [ -f /etc/debian_version ]; then
  dpkg -l|awk '{print $2 " "}'|tr -d "\n" > /home/backup/dpkg.txt
fi

for i in /opt /etc; do
  SRC="$i"
  DEST="/home/backup${i}.tar.bz2"
  d=`dirname $DEST`
  if [ ! -d "$d" ]; then
    mkdir -p "$d"
  fi
  tar cvjf "$DEST" "$SRC"
done

Dieses kleine Skript sichert im Verzeichnis /home/backup als User root wesentliche Verzeichnisse und Daten, um ein System wiederherzustellen:

  • Liste der installierten Pakete (hier für Debian/Ubuntu oder CentOS/RedHat) in einem Format, so dass man es als Eingabe für dpkg --set-selections verwenden kann.
  • Sicherung /etc und /opt

Das ist oft noch keine hinreichende Sicherung, weil Anwendungsdaten mit diesem Skript nicht gesichert werden. Im Falle einer Datenbank müssen deren Daten gesondert gesichert werden. Diese können zu dem o.g. Skript ergänzt werden. Bei jedem Durchlauf werden die Backup Files überschrieben. Das ist jetzt kein revisionssicheres, RZ taugliches Backup aber immer noch besser, als ganz ohne Backup dazustehen, wenn Murphy wieder einmal zugeschlagen hat.

CentOS/RedHat

Unter CentOS/RedHat kann man die Paketliste mit den folgenden Aufrufen sichern und wiederherstellen:

rpm -qa --qf '%{NAME} ' yum -y install $(cat filename)

Sicherheit

Die Backups gehören root und nur dieser hat Zugriff auf die Files. Handelt es sich bei dem Backupverzeichnis um einen Share, dann sollte man vor dem Schreiben auf das Filesystem noch durch gpg2 jagen. So hat man gleich noch ein verschlüsseltes Backup. Es versteht sich von selbst, dass die Backup Dateien auf ein anderes System gesichert werden müssen.