Backups sind eine feine Sache, wenn man sie nur irgendwie automatisch machen könnte. Beim PC ist das mit cron ja kein Ding, beim Laptop ist das schon nicht mehr so einfach.
Da ich nun eine zweite Platte im Laptop habe, dachte ich mir, nun wäre es Zeit eine einfache Backupstrategie zu entwickeln. Ich habe mich für Backintime entschieden, das hat eine angenehme GUI und benutzt rsync im Hintergrund. Außerdem ist sie direkt aus dem Repository installierbar und dürfte damit als stabil und gewartet gelten.
Nun mache ich meinen Laptop abends eigentlich nie aus, sondern schicke ihn mit schließen des Deckels in den Tiefschlaf.
Nur damit fällt das starten aus dem cron flach. Außerdem möchte ich ein gerade begonnenes Backup auch zu Ende laufen lassen und nicht mittendrin unterbrechen. Für genau solche Anwendung ist rtcwake wie geschaffen. Es macht Gebrauch von den ACPI Date/Time Alarmfunktionen des Bios. Voraussetzung ist ein aktueller Kernel, der dies unterstützt und natürlich auch ein Mainboard, welches einen Alarm Timer hat.
Beim Lenovo T500 ist das glücklicherweise der Fall, wahrscheinlich trifft das auch auf viele anderen Notebooks zu, das muss man halt ausprobieren, oder im BIOS nachsehen.
Crontab Eintrag:
# Täglich um 1:00 morgens 0 1 * * * nice -n 19 ionice -c2 -n7 /usr/bin/backintime --backup-job >/dev/null 2>&1 ;/usr/sbin/rtcwake -m mem -t $(date -d 'tomorrow 2:58' +%s)
Ein Hinweis zum Cron Eintrag: Der Eintrag wurde bei mir mit der GUI backintime-gnome vorgenommen und mit " ;/usr/sbin/rtcwake -m mem -t $(date -d 'tomorrow 0:58' +%s)" ergänzt. (Natürlich ist dieser Eintrag wieder weg, sollte man die Uhrzeit in der GUI ändern) Zum Testen, ob das mit dem Eintrag in der RTC Alarm auch klappt, habe ich den Befehl leicht abgewandelt:
rtcwake -m no -t $(date -d 'tomorrow 2:58' +%s) rtcwake -v -m show
Nun wird also nach dem beenden des Backup Programmes ein neuer Eintrag in die BIOS Alarm Uhr gemacht, der auf 0:58 Uhr steht. (Da in der RTC UTC Time eingetragen ist, müssen beim setzen 2 Stunden addiert werden) Der Gedanke dahinter ist, das der Rechner 2 Minuten bevor der Cronjob startet, wieder online ist. Natürlich würde auch eine Minuten reichen.
Ich habe absichtlich nicht das logische UND "&&" benutzt, sondern das ";" weil ich nicht genau weiß, welchen, bzw. ob backintime einen Returncode in Abhängigkeit vom Erfolg setzt. Ich wollte sicherstellen, das am nächsten Tag auf jeden Fall ein erneuter Start eingetragen wird.
Infos zu rtcwake findet ihr im System mit man rtcwake, oder auch hier: www.pro-linux.de/kurztipps/2/1488/pc-zeitgesteuert-starten.htm
Das Konzept ist evtl. noch nicht ganz zu Ende gedacht, ich werde hier berichten.
Hoffentlich befindet sich das Notebook zu diesem Zeitpunkt nicht in einer Tasche und verglüht.
Naja, normalerweise liegt es auf dem Sofa, oder auf dem Sessel, jedenfalls nie in einer Tasche. Stimmt, wenn man unterwegs ist, könnte es schief gehen. Muss man den Lagesensor mit einbeziehen