diff --git a/.linux-updater.v3.env b/.linux-updater.v3.env index a5af09d..b6871a1 100644 --- a/.linux-updater.v3.env +++ b/.linux-updater.v3.env @@ -1,5 +1,5 @@ # Variablen: -# Typ: Variablen für Script linux-updater.v2.sh +# Typ: Variablen für Script linux-updater.v3.sh # Git-Reposit.: # Version: 1.0 # Datum: 13.04.2024 diff --git a/.linux-updater.v4.env b/.linux-updater.v4.env new file mode 100644 index 0000000..c3683b5 --- /dev/null +++ b/.linux-updater.v4.env @@ -0,0 +1,9 @@ +# Variablen: +# Typ: Variablen für Script linux-updater.v4.sh +# Git-Reposit.: +# Version: 1.0 +# Datum: 25.11.2024 +# Modifikation: Initial +##################################################### + +NTFY_URL_ENV=https://ntfy.sh/topic \ No newline at end of file diff --git a/linux-updater.v2.sh b/linux-updater.v2.sh index 2862639..0fe7028 100644 --- a/linux-updater.v2.sh +++ b/linux-updater.v2.sh @@ -4,7 +4,7 @@ # Aufruf: bash ./linux-updater.v2.sh # Autor: Patrick Asmus # Web: https://www.techniverse.net -# Git-Reposit.: https://git.techniverse.net/scriptos/weekly-updater.git +# Git-Reposit.: https://git.techniverse.net/scriptos/linux-updater.git # Version: 2.2 # Datum: 25.11.2024 # Modifikation: Wording geändert diff --git a/linux-updater.v3.sh b/linux-updater.v3.sh index b4e8665..4a56f27 100644 --- a/linux-updater.v3.sh +++ b/linux-updater.v3.sh @@ -4,7 +4,7 @@ # Aufruf: bash ./linux-updater.v3.sh # Autor: Patrick Asmus # Web: https://www.techniverse.net -# Git-Reposit.: https://git.techniverse.net/scriptos/weekly-updater.git +# Git-Reposit.: https://git.techniverse.net/scriptos/linux-updater.git # Version: 3.1 # Datum: 24.11.2024 # Modifikation: Wording geändert diff --git a/linux-updater.v4.sh b/linux-updater.v4.sh new file mode 100644 index 0000000..9071cc5 --- /dev/null +++ b/linux-updater.v4.sh @@ -0,0 +1,95 @@ +#!/bin/bash +# Script Name: linux-updater.v4.sh +# Beschreibung: Wöchentliches Update-Skript für Linux-Systeme +# Aufruf: bash ./linux-updater.v4.sh +# Autor: Patrick Asmus +# Web: https://www.techniverse.net +# Git-Reposit.: https://git.techniverse.net/scriptos/linux-updater.git +# Version: 4.0 +# Datum: 25.11.2024 +# Modifikation: Integration von Ntfy für Benachrichtigungen +##################################################### + +# Umgebungsvariablen +source /root/.env/.linux-updater.v4.env + +# Variablen +SCRIPT_NAME=linux-updater.v4.sh +HOSTNAME=$(hostname) +MAIL=root +LOGDIR=/var/log/script-logs + +# Benachrichtigungseinstellungen +NOTIFY_SUCCESS=0 +NOTIFY_FAILURE=1 + +NTFY_URL=$NTFY_URL_ENV + +# Logging aktivieren +mkdir -p $LOGDIR +exec &> >(tee -a "$LOGDIR/$SCRIPT_NAME.log") + +# Aktualisiere das System +sudo apt update && sudo apt upgrade -y + +# Überprüfe, ob das Update erfolgreich war +if [ $? -eq 0 ]; then + # Räume das System auf + sudo apt-get autoremove --purge -y + sudo apt-get clean -y + + # Bereinige Log-Dateien, die älter als 60 Tage sind + find /var/log -type f -name "*.log" -mtime +60 -exec rm {} \; + + # Bereinige den APT-Cache + sudo apt-get clean + + # Bereinige den Paket-Cache von alten Paketen + sudo apt-get autoclean + + # Entferne ungenutzte Abhängigkeiten + sudo apt-get autoremove --purge + + # Bereinige die Homeverzeichnisse der Benutzer + find /home -type f \( -name "*.tmp" -o -name "*.swp" \) -delete + + # Leere den Trash-Ordner des Root-Benutzers + sudo rm -rf /root/.local/share/Trash/* + + # Leere den Trash-Ordner der Benutzer, falls vorhanden + for user in /home/*; do + if [ -d "$user/.local/share/Trash" ]; then + sudo rm -rf "$user/.local/share/Trash/*" + fi + done + + # Leere das temporäre Verzeichnis + sudo rm -rf /tmp/* + + # Sende Benachrichtigung über Ntfy, wenn Update erfolgreich + if [ "$NOTIFY_SUCCESS" -eq 1 ]; then + curl -H "Title: Update erfolgreich" \ + -H "Priority: min" \ + -H "Tags: white_check_mark,partying_face" \ + -H "Attach: https://assets.techniverse.net/f1/scripts/happy_meme.jpg" \ + -d "Das Update auf Server '$HOSTNAME' wurde erfolgreich abgeschlossen." \ + "$NTFY_URL" + fi + +else + # Sende E-Mail, wenn Update fehlgeschlagen + log_contents=$(cat $LOGDIR/$SCRIPT_NAME.log) + echo -e "Das Update auf $HOSTNAME ist fehlgeschlagen! \n\nLog-Inhalt: \n\n$log_contents" | mail -s "Wöchentliches Update auf $HOSTNAME fehlgeschlagen" $MAIL + + # Sende Benachrichtigung über Ntfy, wenn Update fehlgeschlagen + if [ "$NOTIFY_FAILURE" -eq 1 ]; then + curl -H "Title: Update fehlgeschlagen" \ + -H "Priority: high" \ + -H "Tags: warning,skull" \ + -H "Attach: https://assets.techniverse.net/f1/scripts/fire_meme.jpg" \ + -d "Das Update auf Server '$HOSTNAME' ist fehlgeschlagen." \ + "$NTFY_URL" + fi +fi + +exit 0