Rsnapshot mit externer Festplatte

Rsnapshot scheint für Backups auf Servern gedacht zu sein. Jedenfalls bekommt man ein paar Probleme, wenn der Rechner nicht immer läuft oder gar die Festplatte nicht immer eingeschaltet ist, während es versucht, seine Arbeit zu verrichten. Wenn man z.B. mehrere Cronjobs eingerichtet hat, die täglich, wöchentlich und monatlich Snapshots machen, den Rechner aber beim monatlichen Backup einmal nicht an hat, fällt das monatliche Backup komplett aus.
Dieses Problem lässt sich mit anacron lösen. Anacron führt Jobs eine gewisse Zeit nach dem Systemstart aus.

Allerdings gibt es noch ein weiteres Problem, wenn man seine Backups auf einer externen Festplatte speichern möchte: ist die Festplatte ausgeschaltet, startet Anacron den Job und sieht ihn als ausgeführt an, Rsnapshot macht allerdings nichts (weil man in der config no_create_root aktiviert hat). Das führt im schlimmsten Fall wieder dazu, dass das monatliche Backup ausfällt.

Um das zu verhindern hatte ich ursprünglich für jeden Backup-Job noch einen Warn-Job erstellt, der mir 5min vor dem Backup eine Warnung einblendet, dass ich die Festplatte einschalten sollte. Allerdings passiert es durchaus öfter mal, dass ich genau während dieser 5min nicht auf den Bildschirm gucke. Deshalb habe ich das Problem jetzt richtig™ gelöst und ein kleines Script geschrieben, welches die jeweiligen Snapshots ausführt, wenn der letzte erfolgreiche(!) Snapshot schon mehr als einen Tag, eine Woche oder einen Monat zurück liegt.

Das Skript ist hier auf Github zu finden: https://github.com/Scumpeter/rscron/blob/master/rscron.sh

Wenn das Script als /opt/rscron.sh gespeichert wird (und natürlich executable ist), kann man folgendes in /etc/anacron.conf eintragen:

1    45    rsnapshot.daily    /opt/rscron.sh

Das führt dazu, dass das Skript 45min nach dem Start des Systems (und spätestens täglich) ausgeführt wird.

Es wird vorausgesetzt, dass rsnapshot,  sudo und notify-send installiert und eingerichtet sind. Und dass man einen libnotify-kompatiblen Notification-Daemon auf seinem Desktop laufen hat (KDE, Gnome und XFCE haben so etwas eingebaut).