version 4 released
This commit is contained in:
parent
626976b117
commit
f30b0ab8da
@ -1,5 +1,5 @@
|
|||||||
# Variablen:
|
# Variablen:
|
||||||
# Typ: Variablen für Script linux-updater.v2.sh
|
# Typ: Variablen für Script linux-updater.v3.sh
|
||||||
# Git-Reposit.:
|
# Git-Reposit.:
|
||||||
# Version: 1.0
|
# Version: 1.0
|
||||||
# Datum: 13.04.2024
|
# Datum: 13.04.2024
|
||||||
|
9
.linux-updater.v4.env
Normal file
9
.linux-updater.v4.env
Normal file
@ -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
|
@ -4,7 +4,7 @@
|
|||||||
# Aufruf: bash ./linux-updater.v2.sh
|
# Aufruf: bash ./linux-updater.v2.sh
|
||||||
# Autor: Patrick Asmus
|
# Autor: Patrick Asmus
|
||||||
# Web: https://www.techniverse.net
|
# 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
|
# Version: 2.2
|
||||||
# Datum: 25.11.2024
|
# Datum: 25.11.2024
|
||||||
# Modifikation: Wording geändert
|
# Modifikation: Wording geändert
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# Aufruf: bash ./linux-updater.v3.sh
|
# Aufruf: bash ./linux-updater.v3.sh
|
||||||
# Autor: Patrick Asmus
|
# Autor: Patrick Asmus
|
||||||
# Web: https://www.techniverse.net
|
# 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
|
# Version: 3.1
|
||||||
# Datum: 24.11.2024
|
# Datum: 24.11.2024
|
||||||
# Modifikation: Wording geändert
|
# Modifikation: Wording geändert
|
||||||
|
95
linux-updater.v4.sh
Normal file
95
linux-updater.v4.sh
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user