96 lines
2.1 KiB
Bash
Executable File
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"
|