Automatisiertes ioBroker- und Linux-Update-Skript mit Logging
Inhalt
Einleitung
In der heutigen vernetzten Welt sind regelmäßige Updates für Systemsoftware und Anwendungen entscheidend, um Sicherheit und Stabilität zu gewährleisten. Gerade für ioBroker, eine beliebte Plattform zur Steuerung von Smart-Home-Geräten, und Linux-basierte Systeme ist eine kontinuierliche Aktualisierung wichtig, um von den neuesten Funktionen und Sicherheitsupdates zu profitieren.
Mit diesem Bash-Skript stelle ich eine einfache Lösung vor, die den ioBroker sowie das Linux-Betriebssystem automatisch aktualisiert und dabei alle Schritte in einer Logdatei dokumentiert. Das Skript prüft, ob Updates verfügbar sind, installiert diese und startet den ioBroker bei Bedarf neu. Zusätzlich führt es Systemupdates durch und startet das System automatisch neu, falls dies erforderlich ist. So kannst du sicherstellen, dass dein System stets aktuell ist – ganz ohne manuellen Aufwand. Viel Spaß beim Ausprobieren und Anpassen!
Schritt 1: Skript erstellen
Erstelle zunächst das Bash-Skript. Speichere es als iobroker_update.sh
auf deinem System.
Ersetze {Username} durch deinen Usernamen
1 2 3 4 | mkdir /home/ {Username} /skripte mkdir /home/ {Username} /skripte/logs nano /home/ {Username} /skripte/iobroker_update .sh |
Füge nun folgendes Skript ein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | #!/bin/bash # ioBroker- und Linux-Update-Skript mit Logging LOGFILE= "/home/iobroker/skripte/logs/iobroker_update.log" # Funktion zum Schreiben ins Log log_message() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOGFILE" } log_message "Update-Skript gestartet..." # Wechseln zum ioBroker-Verzeichnis cd /opt/iobroker || { log_message "Fehler: ioBroker-Verzeichnis nicht gefunden!" ; exit 1; } # ioBroker-Update prüfen und durchführen log_message "Überprüfe auf ioBroker-Updates..." UPDATE_AVAILABLE=$(iobroker upgrade | grep "Update available" ) if [ -n "$UPDATE_AVAILABLE" ]; then log_message "Update verfügbar. ioBroker wird aktualisiert..." # Führe das Update von ioBroker selbst aus if iobroker upgrade self; then log_message "ioBroker erfolgreich aktualisiert." # Update aller Module durchführen if iobroker upgrade; then log_message "Alle Module erfolgreich aktualisiert." # ioBroker neu starten if iobroker restart; then log_message "ioBroker wurde erfolgreich neu gestartet." else log_message "Fehler: ioBroker konnte nach dem Update nicht neu gestartet werden." fi else log_message "Fehler beim Update der ioBroker-Module." fi else log_message "Fehler beim Update von ioBroker." fi else log_message "Kein Update verfügbar. ioBroker ist auf dem neuesten Stand." fi # Linux-Systemupdates durchführen log_message "Überprüfe und installiere Systemupdates..." # Paketlisten aktualisieren if sudo apt update -y; then log_message "Paketlisten erfolgreich aktualisiert." # Sicherheits- und Systemupdates installieren if sudo apt upgrade -y; then log_message "Systemupdates erfolgreich installiert." # Optional: Neustart, falls benötigt if [ -f /var/run/reboot-required ]; then log_message "Neustart erforderlich. System wird jetzt neu gestartet." sudo reboot else log_message "Kein Neustart erforderlich." fi else log_message "Fehler bei der Installation der Systemupdates." fi else log_message "Fehler beim Aktualisieren der Paketlisten." fi log_message "Update-Skript beendet." |
Speicher und schließe das Skript mit STRG+O
und STRG+X
Schritt 2: sudo
ohne Passwortabfrage für das Skript einrichten
Damit das Skript ohne Passwortabfrage ausgeführt werden kann, müssen wir die sudoers
-Datei anpassen. Das gibt dem Benutzer die Erlaubnis, sudo
-Befehle wie apt update
, apt upgrade
und reboot
ohne Passwort auszuführen.
1. Öffne die sudoers
-Datei mit dem Befehl:
1 | sudo visudo |
2. Füge folgende Zeile am Ende der Datei hinzu (ersetze username
durch den tatsächlichen Namen des Benutzers, der das Skript ausführt):
1 | username ALL=(ALL) NOPASSWD: /usr/bin/apt update, /usr/bin/apt upgrade, /usr/sbin/reboot |
3. Speichere die Änderungen und verlasse den Editor.
Schritt 3: Skript ausführbar machen
Um das Skript ausführen zu können, müssen wir die Berechtigungen anpassen:
1 | chmod +x /home/iobroker/skripte/iobroker_update .sh |
Schritt 4: Automatische Ausführung mit cron
Du kannst das Skript in regelmäßigen Abständen automatisch ausführen lassen, indem du einen cron
-Job einrichtest.
1. Öffne die Crontab-Datei für den Benutzer:
1 | crontab -e |
2. Füge folgende Zeile hinzu, um das Skript täglich um 3 Uhr morgens auszuführen:
1 | 0 3 * * * /home/iobroker/skripte/iobroker_update .sh |
Hinweis: Die Zeitangaben kannst du nach Bedarf anpassen.
3. Speichere und schließe die Crontab-Datei.