Compare commits

...

5 Commits

4 changed files with 174 additions and 1 deletions

83
Maintenance/CertbotRenew.sh Executable file
View File

@ -0,0 +1,83 @@
#!/bin/bash
# === IMPORTS ===
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../Utility/NetworkCheck.sh"
source "$SCRIPT_DIR/../Utility/Log.sh"
# === ROOT-PRÜFUNG ===
if [[ $EUID -ne 0 ]]; then
echo "Dieses Skript muss als root ausgeführt werden! Bitte starte es mit sudo."
exit 1
fi
# === Funktionen ===
# Funktion zum sauberen Beenden des Skripts
cleanup() {
log "Prozess abgebrochen"
exit 1
}
# === Hauptskript ===
# Protokollieren des Startzeitpunkts
log "Zertifikatserneuerung gestartet"
# nginx stoppen
log "nginx stoppen"
output=$(systemctl stop nginx 2>&1)
status=$?
log "$output"
if [ $status -ne 0 ]; then
log "Fehler beim Stoppen von nginx"
cleanup
fi
log "nginx gestoppt"
# Zertifikat erneuern
log "Zertifikatserneuerung gestartet"
output=$(certbot renew 2>&1)
status=$?
log "$output"
if [ $status -ne 0 ]; then
log "Fehler bei der Zertifikatserneuerung"
cleanup
fi
log "Zertifikatserneuerung abgeschlossen"
# Docker neu starten
log "Docker wird neu gestartet"
output=$(systemctl restart docker 2>&1)
status=$?
log "$output"
if [ $status -ne 0 ]; then
log "Fehler beim Neustarten von Docker"
cleanup
fi
log "Docker erfolgreich neu gestartet"
# Wings neu starten
log "Wings wird neu gestartet"
output=$(systemctl restart wings 2>&1)
status=$?
log "$output"
if [ $status -ne 0 ]; then
log "Fehler beim Neustarten von Wings"
cleanup
fi
log "Wings erfolgreich neu gestartet"
# nginx starten
log "nginx starten"
output=$(systemctl start nginx 2>&1)
status=$?
log "$output"
if [ $status -ne 0 ]; then
log "Fehler beim Starten von nginx"
cleanup
fi
log "nginx gestartet"
# Protokollieren des Endzeitpunkts
log "Zertifikatserneuerung abgeschlossen"

47
Maintenance/Update.sh Executable file
View File

@ -0,0 +1,47 @@
#!/bin/bash
# === IMPORTS ===
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../Utility/NetworkCheck.sh"
source "$SCRIPT_DIR/../Utility/Log.sh"
# === ROOT-PRÜFUNG ===
if [[ $EUID -ne 0 ]]; then
echo "Dieses Skript muss als root ausgeführt werden! Bitte starte es mit sudo."
exit 1
fi
# === Skript-Funktionen ===
cleanup() {
log "Update-Skript abgebrochen"
exit 1
}
update_packages() {
log "Führe 'apt update' aus"
apt update |& while IFS= read -r line; do log "$line"; done
log "Befehl abgeschlossen"
log "Führe 'apt upgrade' aus"
apt upgrade -y |& while IFS= read -r line; do log "$line"; done
log "Befehl abgeschlossen"
}
update_flatpak() {
log "Führe 'flatpak update' für alle Nutzer aus"
for user in $(getent passwd | awk -F: '$3 >= 1000 && $7 !~ /(\/sbin\/nologin|\/bin\/false|\/usr\/sbin\/nologin)/ { print $1 }'); do
sudo -u "$user" flatpak update -y |& while IFS= read -r line; do log "$line"; done
log "Befehl 'sudo -u $user flatpak update' abgeschlossen"
done
}
# === Hauptskript ===
trap cleanup SIGINT
wait_for_internet_connection
update_packages
update_flatpak
log "Update-Skript beendet"

32
Mount/OneDrive.sh Executable file
View File

@ -0,0 +1,32 @@
#!/bin/bash
# === IMPORTS ===
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../Utility/NetworkCheck.sh"
source "$SCRIPT_DIR/../Utility/Log.sh"
# === Variablen ===
MOUNT_POINT="/media/OneDrive"
PROFILE_NAME="OneDrive"
# === Hauptskript ===
wait_for_internet_connection
if rclone listremotes | grep -q "^${PROFILE_NAME}:"; then
mkdir -p "$MOUNT_POINT"
if rclone listremotes | grep -q "^${PROFILE_NAME}:"; then
mkdir -p "$MOUNT_POINT"
if rclone mount "${PROFILE_NAME}:" "$MOUNT_POINT" --vfs-cache-mode writes --daemon; then
log "${PROFILE_NAME} wurde eingehängt."
else
log "Fehler beim Ausführen von rclone. Überprüfen Sie die rclone-Konfiguration und versuchen Sie es erneut."
fi
else
log "Kein rclone-Profil mit dem Namen '${PROFILE_NAME}' gefunden."
fi
else
log "Kein rclone-Profil mit dem Namen '${PROFILE_NAME}' gefunden."
fi

View File

@ -1,6 +1,17 @@
#!/bin/bash
# === Variablen ===
LOGDIR="/tmp/skript-logs"
LOGFILE="$LOGDIR/$(basename "$0" .sh)_$(date +'%Y-%m-%d').log"
# Funktion zum Protokollieren von Nachrichten
log() {
echo "$(date +'%Y-%m-%d %H:%M:%S') - $1"
if [ ! -d "$LOGDIR" ]; then
mkdir -p "$LOGDIR"
fi
if [ ! -f "$LOGFILE" ]; then
touch "$LOGFILE"
fi
echo "$(date +'%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOGFILE"
}