Version 3 released | Webhooks sind jetzt Bestandteil
This commit is contained in:
parent
ddc61d59c5
commit
5c2b712739
10
.weekly-update.v3.env
Normal file
10
.weekly-update.v3.env
Normal file
@ -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
|
80
weekly-update.v3.sh
Normal file
80
weekly-update.v3.sh
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user