Der Mensch ist von Natur aus ersteinmal faul (zumindest bin ich das). Und gerade wenn es um das regelmäßige Anlegen von Datensicherungen des eigenen Desktops geht, ist man gerne einmal etwas nachlässig (zumindest bin ich das…).
Aus diesem Grund habe ich nach einer Lösung gesucht, die es mir unter Debian Etch ermöglicht, auf meiner USB-Platte automatisch Backups anzulegen, sobald ich diese an den Rechner anschließe und einschalte.
Und weil ich nicht nur praktisch veranlagt bin, sondern auch auf Ästhetik achte (*g*), sollte das Ganze nicht einfach nur im Hintergrund laufen und irgendwelche Logfiles füllen, sondern auch dezent akkustisch und visuell auf sich aufmerksam machen.
Zur Lösung dieser Aufgabe habe ich mir folgende Hilfsmittel zusammengesucht:
Nach dem erfolgreichen Einrichten und Testen von Dirvish ging es daran, das Backup zu automatisieren:
Um die Backup-Partition der USB-Platte (/dev/sde1) immer unter dem gleichen Mountpoint eingehangen zu bekommen, habe ich ihr zuallerest ein Label verpasst:
# e2label /dev/sde1 "Backups"
Von nun an hängt udev mir die Platte grundsätzlich unter /media/Backups ein, was mir die Programmierung des Backup-Scriptes ein wenig vereinfachte.
Jetzt stand die Erstellung des Scriptes an, das die Backups initiieren sollte und dabei auch Informationen über das Ergebnis der Sicherung geben sollte.
Zur Übermittlung dieser Informationen suchte ich mir das Programm notify-send aus (die benötigten Pakete heißen: libnotify-bin und libnotify1), so bekomme ich immer schöne (und wichtiger: informative) Popups auf meinen Gnome-Desktop.
Und um auch hören zu können, ob etwas schiefgegangen oder das Backup geglückt ist, spiele ich mit “play” (aus dem Paket “sox”) eine entsprechende Wave-Datei ab.
Das Script /home/stefan/bin/backup.sh sieht nun bei mir folgendermaßen aus:
#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin
BACKUP_ROOT=/media/Backups/desktop-01
# sicherheitshalber warten, bis das Sicherungsverzeichnis verfügbar ist, weil das Script beim Mounten des Backup-Volumes automatisch angestoßen wird
sleep 10
# wenn Backup-Zielverzeichnis nicht gefunden -> schnell raus hier
if [ ! -d "$BACKUP_ROOT" ]; then
play /usr/share/sounds/gnobots2/splat.wav
strNotification=”Die automatische Sicherung konnte nicht gestartet werden.”
/usr/bin/notify-send -t 5000 - -icon “gtk-dialog-error” “Backup fehlgeschlagen” “$strNotification”
exit 1
fi
# Backups starten
strNotification=”Die automatische Sicherung auf das Backup-Volume wurde gestartet. Bitte das Volume jetzt nicht ausschalten!”
/usr/bin/notify-send -t 5000 - -icon “gtk-dialog-info” “Backup gestartet” “$strNotification”
dirvish-runall && dirvish-expire
### und zum schluss die backup-infos
datum=$(date +%Y%m%d)
txtSummary=”"
for backup_dir in `find $BACKUP_ROOT -maxdepth 2 -type d |grep -i $datum`; do
txtSummary=”$txtSummary”`echo $backup_dir|awk -F/ ‘{ print $5 }’`”:”`tail -n 1 $backup_dir/summary | awk ‘{ print $2 }’`”^M”
done
play /usr/share/sounds/gnobots2/yahoo.wav
“$txtSummaryion=”Die automatische Sicherung auf das Backup-Volume wurde beendet. Das Volume kann nun wieder ausgehaengt werden.^M^M”$txtSummary
/usr/bin/notify-send -t 50000 - -icon “gtk-dialog-info” “Backup beendet” “$strNotification”
(Einfacher als mit Cut’n'Paste geht’s über den Download von: backup.sh.tar, da die DOS-Zeilenumbrüche ansonsten noch einmal manuell nachgepflegt werden müssten)
Und schlussendlich sollte das Script gestartet werden, sobald die Backup-Partition beim Anschalten der externen Platte in das System eingehangen wird:
Das dazu nötige Paket heißt “ivman”. Da ivman unter meinen Benutzeraccount, und nicht als Systemdaemon laufen sollte, stoppte ich nach der Installation des Paketes zuerst den Daemon, danach entfernte ich den Startverweis aus /etc/rc2.d:
# /etc/init.d/ivman stopEinmalig unter meinem Account aufgerufen, legt ivman nun das Verzeichnis ~/.ivman an.
# rm /etc/rc2.d/S??ivman
Darin gibt es neben anderen Dateien auch die Konfigurationsdatei “IvmConfigActions.xml”. Diese muss nun um ein paar Zeilen erweitert werden. Bei mir sahen die so aus:
<ivm :Match name="hal.volume.uuid" value="4a94db76-2ab3-42c3-9aa3-49813041e25f">
<ivm :Option name="exec" value="/home/stefan/bin/backup.sh" />
</ivm>
Die UUID der Partition muss an dieser Stelle natürlich durch den richtigen Wert für Dein Installationsmedium ersetzt werden. Dieser lässt sich beispielsweise mit dem “hal-device-manager” herausfinden. Einfach die Platte einschalten, und unter “Devices” Nach der Backup-Partition suchen. Im Aktenreiter “volume.uuid” steht dann der gesuchte Wert.
Jetzt nur noch ivman über das Menü System/Sitzungen unter Startprogramme eintragen, und schon kann’s mit den Backups losgehen
Noch nix da .. kommentartechnisch gesehen ... :)
Eine Antwort eintragen