2024-04-10 14:01:59 +00:00
#!/bin/bash
2024-04-10 14:06:05 +00:00
#############################################################################################
# .--.
# |o_o |
# |:_/ |
# // \ \
# (| | )
# /'\_ _/`\
# \___)=(___/
#
# Script Name: weekly-updater.sh
# Beschreibung: Legt den weekly-Updater an
# Aufruf: git clone https://git.retronerd.at/schiwagoa/weekly-updater.git
# bash ./weekly-updater.git
# Autor: Thomas Werner Schwaighofer
# Web: https://www.retronerd.at
# eMail: webmaster@retronerd.at
# Git-Reposit.: https://git.retronerd.at/schiwagoa/weekly-updater.git
# Version: 1.0.0
# Datum: 10.04.2024
# Modifikation: Initial
#
# Copyright (c) 2024
# Author: SchiWaGoa
# License: MIT
#
#
##############################################################################################
2024-04-10 14:01:59 +00:00
# Variablen
2024-04-10 14:06:05 +00:00
SCRIPT_NAME = weekly-update.sh
2024-04-10 14:01:59 +00:00
HOSTNAME = $( hostname)
2024-04-10 14:06:05 +00:00
MAIL = system@retronerd.at
2024-04-10 14:01:59 +00:00
LOGDIR = /var/log/script-logs
# 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 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/*
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