From 5c2b7127399cb6decdf2b23eb9d088bd727a0816 Mon Sep 17 00:00:00 2001 From: scriptos Date: Sat, 13 Apr 2024 21:46:21 +0200 Subject: [PATCH] Version 3 released | Webhooks sind jetzt Bestandteil --- .weekly-update.v3.env | 10 ++++++ weekly-update.v3.sh | 80 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 .weekly-update.v3.env create mode 100644 weekly-update.v3.sh diff --git a/.weekly-update.v3.env b/.weekly-update.v3.env new file mode 100644 index 0000000..450dc35 --- /dev/null +++ b/.weekly-update.v3.env @@ -0,0 +1,10 @@ +# Variablen: +# Typ: Variablen für Script weekly-update.v3.sh +# Git-Reposit.: +# Version: 1.0 +# Datum: 13.04.2024 +# Modifikation: Initial +##################################################### + +WEBHOOK_URL_ENV=https://webhooks.techniverse.net/webhooks +API_KEY_ENV=123456 \ No newline at end of file diff --git a/weekly-update.v3.sh b/weekly-update.v3.sh new file mode 100644 index 0000000..12110c5 --- /dev/null +++ b/weekly-update.v3.sh @@ -0,0 +1,80 @@ +#!/bin/bash +# Script Name: weekly-update.v3.sh +# Beschreibung: Wöchentliches Update-Skript für Linux-Systeme +# Aufruf: bash ./weekly-update.v3.sh +# Autor: Patrick Asmus +# Web: https://www.techniverse.net +# Git-Reposit.: https://git.techniverse.net/scriptos/weekly-updater.git +# Version: 3.0 +# Datum: 13.04.2024 +# Modifikation: Version 3 released | Webhooks sind jetzt Bestandteil +##################################################### + +# Umgebungsvariablen +source /root/.env/.weekly-update.v3.env + +# Variablen +SCRIPT_NAME=weekly-update.v3.sh +HOSTNAME=$(hostname) +MAIL=root +LOGDIR=/var/log/script-logs + +WEBHOOK_URL=$WEBHOOK_URL_ENV +API_KEY=$API_KEY_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 "*.bak" -o -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 Webhook + curl -d "{\"body\": \"$HOSTNAME: Das wöchentliche Update wurde erfolgreich durchgeführt.\", \"key\": \"$API_KEY\"}" \ + "$WEBHOOK_URL" + +else + # Sende eine E-Mail, wenn das Update fehlgeschlagen ist + 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 Webhook + curl -d "{\"body\": \"$HOSTNAME: Das wöchentliche Update ist fehlgeschlagen.\", \"key\": \"$API_KEY\"}" \ + "$WEBHOOK_URL" +fi + +exit 0