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:
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.
Unter CentOS/RedHat kann man die Paketliste mit den folgenden Aufrufen sichern und wiederherstellen:
rpm -qa --qf '%{NAME} ' yum -y install $(cat filename)
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.