Skripte/Maintenance/CertbotRenew.sh

96 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# === IMPORTS ===
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../Utility/NetworkCheck.sh"
source "$SCRIPT_DIR/../Utility/Log.sh"
# === Hilfe-Seite ===
if [[ "$*" == *"-h"* ]]; then
echo "Benutzung: $0"
echo
echo "Dieses Skript muss als root ausgeführt werden! Bsp. sudo $0"
echo "Folgende Pakete müssen installiert sein: certbot, nginx"
echo
echo "Dieses Skript prüft, ob durch Certbot erstellte Zertifikate erneuert werden müssen und tut dies."
echo "Danach werden Dienste wie docker, nginx und wings neugestartet."
exit 0
fi
# === 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"