Wöchentliches Update-Skript für Linux-Systeme

heute möchte ich euch ein praktisches Bash-Skript vorstellen, mit dem ihr eure Linux-Systeme regelmäßig aktualisieren könnt. Das Skript trägt den Namen “weekly-update.v2.sh” und es hilft euch dabei, eure Systeme sicherer und leistungsfähiger zu halten, indem es automatische Updates durchführt. Schauen wir uns das Skript genauer an.

#!/bin/bash
# Script Name:  weekly-update.v2.sh
# Beschreibung: Wöchentliches Update-Skript für Linux-Systeme
# Aufruf:       bash ./weekly-update.v2.sh
# Autor:        Patrick Asmus
# Web:          https://www.media-techport.de
# Git-Reposit.: https://git.media-techport.de/scriptos/weekly-updater.git
# Version:      2.0.3
# Datum:        15.07.2023
# Modifikation: Header angepasst, Tagesprüfung rausgenommen
#####################################################

# Logverzeichnis erstellen
mkdir -p /var/log/script-logs

# Variablen
HOSTNAME=$(hostname)
MAIL=root

# Aktualisiere das System und speichere die Ausgabe in eine Log-Datei
sudo apt update && sudo apt upgrade -y &> /var/log/script-logs/weekly-update.v2.log

    # Überpruefe, ob das Update erfolgreich war
    if [ $? -ne 0 ]; then
        # Sende eine E-Mail, wenn das Update fehlgeschlagen ist
        log_contents=$(cat /var/log/internal-scripts/weekly-update.2.0.log)
        echo -e "Das Update auf $HOSTNAME ist fehlgeschlagen! \n\nLog-Inhalt: \n\n$log_contents" | mail -s "Woechentliches Update auf $hostname fehlgeschlagen" $MAIL
    else
        # Raeume das System auf
        sudo apt-get autoremove --purge -y
        sudo apt-get clean -y
    fi
fi
exit 0

Um das Skript auszuführen, öffnet einfach ein Terminal, kopiert den Inhalt dieses Scripts in ein *.sh File, speichert dieses unter “weekly-update.v2.sh” ab und gebt den Befehl “bash ./weekly-update.v2.sh” ein. Dadurch wird das Skript gestartet und die Aktualisierung eurer Linux-Systeme beginnt.

Das Skript erstellt zunächst ein Logverzeichnis unter “/var/log/script-logs”. Dadurch könnt ihr die Aktivitäten des Skripts überwachen und mögliche Fehler oder Probleme identifizieren. Eine saubere und gut organisierte Protokollierung ist immer wichtig, um den Überblick zu behalten.

Zusätzlich definiert das Skript einige Variablen. Die Variable “HOSTNAME” enthält den Namen eures Computers, während “MAIL” die E-Mail-Adresse definiert, an die Benachrichtigungen gesendet werden sollen. Ihr könnt diese Variablen nach Bedarf anpassen.

Der Hauptzweck des Skripts besteht darin, euer System zu aktualisieren. Es führt den Befehl “sudo apt update” aus, um die Paketlisten zu aktualisieren, und anschließend “sudo apt upgrade -y”, um alle verfügbaren Pakete zu aktualisieren. Die Ausgabe dieser Befehle wird in einer Log-Datei unter “/var/log/script-logs/weekly-update.v2.log” gespeichert.

Nachdem das System aktualisiert wurde, überprüft das Skript, ob das Update erfolgreich war. Wenn nicht, wird eine E-Mail-Benachrichtigung mit Informationen über den fehlgeschlagenen Update-Vorgang an die in der Variable “MAIL” angegebene E-Mail-Adresse gesendet. Die E-Mail enthält auch den Inhalt des Logfiles, um euch bei der Fehlerbehebung zu unterstützen.

Wenn das Update erfolgreich war, führt das Skript außerdem Aufräumarbeiten durch. Es entfernt nicht mehr benötigte Pakete mit dem Befehl “sudo apt-get autoremove –purge -y” und löscht temporäre Dateien mit “sudo apt-get clean -y”. Dadurch wird euer System aufgeräumt und Speicherplatz freigegeben.

Falls ihr es automatisiert ausführen lassen wollt, dann packt das ganze in ein Cronjob rein:

@weekly /home/scripts/default/weekly-update.v2.sh > /dev/null 2>&1

Ich hoffe, dass euch dieses Skript dabei hilft, eure Linux-Systeme einfach und effizient zu aktualisieren. Indem ihr eure Systeme auf dem neuesten Stand haltet, könnt ihr Sicherheitslücken schließen und von verbesserten Funktionen und Leistung profitieren.

Danke fürs Teilen!