66 lines
2.0 KiB
Bash
66 lines
2.0 KiB
Bash
#!/bin/bash
|
|
# Script Name: weekly-update.v2.sh
|
|
# Beschreibung: Wöchentliches Update-Skript für Linux-Systeme
|
|
# Aufruf: bash ./weekly-update.v2.sh
|
|
# Autor: Patrick Asmus
|
|
# Web: https://www.media-techport.de
|
|
# Git-Reposit.: https://git.media-techport.de/scriptos/weekly-updater.git
|
|
# Version: 2.1.1
|
|
# Datum: 11.08.2023
|
|
# Modifikation: Bereinigung der Verzeichnisse reingenommen
|
|
#####################################################
|
|
|
|
# Logverzeichnis erstellen
|
|
mkdir -p /var/log/script-logs
|
|
|
|
# Variablen
|
|
SCRIPT_NAME=weekly-update.v2.sh
|
|
HOSTNAME=$(hostname)
|
|
MAIL=root
|
|
LOGDIR=/var/log/script-logs
|
|
|
|
# Aktualisiere das System und speichere die Ausgabe in eine Log-Datei
|
|
sudo apt update && sudo apt upgrade -y &> /var/log/script-logs/weekly-update.v2.log
|
|
|
|
# Ü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 30 Tage sind
|
|
find /var/log -type f -name "*.log" -mtime +30 -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
|
|
for user in /home/*; do
|
|
if [ -d "$user/.local/share/Trash" ]; then
|
|
sudo rm -rf "$user/.local/share/Trash/*"
|
|
fi
|
|
done
|
|
|
|
# Leere den temporären Verzeichnis
|
|
sudo rm -rf /tmp/*
|
|
|
|
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
|
|
|
|
exit 0
|