2023-07-14 22:42:30 +00:00
#!/bin/bash
# Script Name: weekly-update.v2.sh
2023-07-15 00:01:56 +00:00
# Beschreibung: Wöchentliches Update-Skript für Linux-Systeme
2023-07-14 22:42:30 +00:00
# Aufruf: bash ./weekly-update.v2.sh
# Autor: Patrick Asmus
# Web: https://www.media-techport.de
2023-07-14 22:50:14 +00:00
# Git-Reposit.: https://git.media-techport.de/scriptos/weekly-updater.git
2023-10-13 21:47:07 +00:00
# Version: 2.1.4
# Datum: 13.10.2023
# Modifikation: Logging optimiert
2023-07-14 22:42:30 +00:00
#####################################################
# Variablen
2023-08-06 18:37:31 +00:00
SCRIPT_NAME = weekly-update.v2.sh
2023-07-14 22:42:30 +00:00
HOSTNAME = $( hostname)
MAIL = root
2023-08-06 18:37:31 +00:00
LOGDIR = /var/log/script-logs
2023-07-14 22:42:30 +00:00
2023-10-13 21:47:07 +00:00
# Logging aktivieren
2023-08-13 00:11:41 +00:00
mkdir -p $LOGDIR
2023-10-13 21:47:07 +00:00
exec & > $LOGDIR /$SCRIPT_NAME .log
2023-08-13 00:11:41 +00:00
2023-07-14 22:42:30 +00:00
# Aktualisiere das System und speichere die Ausgabe in eine Log-Datei
2023-10-13 21:47:07 +00:00
sudo apt update && sudo apt upgrade -y
2023-07-14 22:42:30 +00:00
2023-08-11 13:20:27 +00:00
# Ü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
2023-08-13 00:00:48 +00:00
# Bereinige Log-Dateien, die älter als 60 Tage sind
find /var/log -type f -name "*.log" -mtime +60 -exec rm { } \;
2023-08-11 13:20:27 +00:00
# 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/*
2023-08-13 00:00:48 +00:00
# Leere den Trash-Ordner der Benutzer, falls vorhanden
2023-08-11 13:20:27 +00:00
for user in /home/*; do
if [ -d " $user /.local/share/Trash " ] ; then
sudo rm -rf " $user /.local/share/Trash/* "
fi
done
2023-08-13 00:00:48 +00:00
# Leere das temporäre Verzeichnis
2023-08-11 13:20:27 +00:00
sudo rm -rf /tmp/*
2023-08-11 13:37:18 +00:00
2023-08-11 13:20:27 +00:00
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 " Woechentliches Update auf $HOSTNAME fehlgeschlagen " $MAIL
fi
2023-08-06 18:32:20 +00:00
2023-10-13 21:47:07 +00:00
exec & > /dev/tty
2023-07-14 22:42:30 +00:00
exit 0