Es kommt leider immer mal wieder vor, dass ein automatisierter Prozess auf ein Problem stößt und daher seine Verarbeitung abbricht. Das ist meistens kein Problem, man schaut nach woran es gelegen hat, behebt das Problem und führt den Prozess erneut aus. In manchen Fällen nimmt ein Script aber bestimmte Vorarbeiten vor, die ein erneutes Ausführen behindern, z.B. könnte ein Script Snapshots erzeugen und Mounten. Versucht man dies ein zweites Mal, wird dies zu Fehlermeldungen führen. Nutzt ein Script dann z.B. set -e1 um bei Fehlern die weitere Ausführung abzubrechen, haben wir ein Problem und müssen die abschließenden Arbeiten des Scripts einmal manuell ausführen. Das kann realtiv komplex werden, vor allem weil man solche - eigentlich automatisierten - Vorgänge ja meist nicht mehr so wirklich auf dem Schirm hat.

Immer wieder gibt es Prozesse die sehr lange dauern und die auf keinen Fall doppelt gestartet werden sollten. Vor vielen Jahren bin ich über eine Lösung für Lockfiles in Bash-Scripten gestolpert, die ich seitdem in fast jedem Script mit potenziell langer Laufzeit nutze.

Das Backuptool borg1 habe ich hier ein wenig beschrieben. Nun soll es darum gehen mittels borg saubere Backups zu erstellen und auch sicherzustellen, diese jederzeit wiederherstellen zu können.

Backups sind ein leidiges aber eben auch wichtiges Thema. Zum Glück gibt es heutzutage wirklich tolle Tools um auch umfangreiche Backup zu erzeugen. Wenn dabei dann noch die anfallenden Datenmengen klein genug werden, dass selbst eine normale DSL-Leitung ausreicht um das Backup zu externen Speichern zu übertragen, ist man Nahe dran am heiligen Backupgral.

Lange Zeit habe ich nach Tools gesucht, die ein Backup in kurzer Zeit, mit geringen Bandbreitenbedarf, Verschlüsselung, einwandfreier und vollständiger Überprüfbarkeit und einfacher Wiederherstellung gewährleisten.

LVM (Logical Volume Manager) erlaubt im Grunde die flexiblere Verwaltung von "Partitionen" einer Festplatte. Anstatt die Partitionen beim Einrichten eines Datenträgers (z.B. mittels fdisk) einmal - mehr oder weniger - fix festzulegen, erzeugt man mit LVM sog. Volume Groups (VG). Eine solche Volume Group kann mehrere physikalische Datenträger umfassen1. Innerhalb der Volume Groups werden dann die eigentlichen Logical Volumes (LV) erzeugt. Diese können dann wie physikalische Datenträger behandelt und mit beliebigen Dateisystemen versehen werden.

Ein weiteres Feature von LVM sind sog. Snapshots. Ein Snapshot friert den Zustand des Dateisystems zum Zeitpunkt der Erstellung des Snapshots quasi ein. Die Daten im Snapshot verändern sich nicht mehr. Technisch funktioniert dies über das sog. Copy on write2. Dies ist sehr hilfreich um konsistente Backups erstellen zu können.

Verschiedene Betriebssysteme haben jeweils ihre eigenen Stärken und Schwächen. Ich nutze daher gern Multibootsysteme, auf denen mehrere Betriebssysteme (hoffentlich) friedlich koexistieren. In der Vergangenheit waren Multibootsetups oft etwas hakelig, da man sich mit den Konfigurationsdateien der jeweiligen Bootloader (z.B. GRUB1) beschäftigen musste, die mitunter sehr kryptisch sind.

Hier schaffen EFI-Bootmanager wie rEFInd2 Abhilfe, diese erkennen die anderen Systeme automatisch und bieten zudem eine optische ansprechende Oberfläche. Zudem kann rEFInd unabhängig von den jeweiligen Betriebssystemen installiert werden, wenn man ein System nicht mehr benötigen sollte, können dessen Partition(en) einfach gelöscht werden und der Eintrag in rEFInd verschwindet automatisch.

Immer wieder stolpere ich über interessante Webseiten, habe aber in dem Moment nicht immer die Zeit, mich intersiver damit zu befassen. Lange Zeit habe ich mir dann einfach einen Bookmark im Browser gesetzt und ihn dann meist nie wieder aufgerufen. Zum einen weil die Bookmarks zwischen verschiedenen Geräten nicht synchronisiert wurden, zum andren weil ich oft gar nicht mehr wusste, was ich da eigentlich gebookmarked hatte.

Für das Sync-Problem gibt es mittlerweile natürlich jede Menge Tools und Services. Aber keiner davon hat mir bisher so wirklich gut gefallen. Entweder waren es Datenkraken und/oder total überladene Produkte.

Irgendwann bin ich dann über Wallabag1 gestolpert.

Um den Einstieg in ein Selbstbau-SmartHome zu machen, bieten sich ESP82661 oder ESP322 Mikrocontroller an. Sie sind klein, günstig, brauchen wenig Strom und sind leicht zu programmieren. Ein sehr einfaches Gerät, könnte ein Raumthermometer sein. So etwas kann man sich sehr einfach mit einem ESP8266, einem 4,7 kOhm Widerstand, einem DHT223 Sensor und ein paar Kabeln basteln. Programmiert werden kann so ein ESP8266 z.B. über die Arduino Entwicklungsumgebung4, die kostenlos heruntergeladen werden kann.

Häufig führt man Wartungsscripte aus und lässt sich den Status z.B. via Mail zustellen. Oft schleicht es sich dann irgendwann ein, dass man diese zwar zur Kenntnis nimmt, aber nicht mehr wirklich intensiv beachtet. Je nachdem, wie der Inhalt gestaltet ist, können hierbei Fehlermeldungen untergehen.

Daher mag ich es, wenn neben dem vollständigen Output der Aktionen eine Statuszusammenfassung enthalten ist, bei der man auf einen Blick erkennt, ob alle Teilschritte funktioniert haben.

Wenn man einen Server betreibt, ist es oft sinnvoll sich über dessen Status informieren zu lassen. Hierzu bieten sich z.B. Push-Notifications an. Der kleinste gemeinsame Nenner ist jedoch oft immer noch die klassische E-Mail. Nahezu jedes Tool kann Statusberichte oder Fehlermeldungen per Mail zustellen. Darüber hinaus kann der Mailversand für Passwort-Reset-Funktionen und ähnliches genutzt werden.

Es lohnt sich also, sich damit einmal zu beschäftigen.