feat: IP-Watcher – automatischer Neustart bei IP-Wechsel
This commit is contained in:
31
assets/bin/WatchPublicIP.sh
Normal file
31
assets/bin/WatchPublicIP.sh
Normal file
@@ -0,0 +1,31 @@
|
||||
#!/bin/sh
|
||||
# Überwacht die ausgehende öffentliche IP des Containers und startet tmserver neu,
|
||||
# wenn sich die IP ändert, damit er sich mit der neuen IP beim Masterserver registriert.
|
||||
|
||||
set -e
|
||||
apk add --no-cache curl docker-cli > /dev/null 2>&1
|
||||
set +e
|
||||
|
||||
INTERVAL="${IP_WATCHER_INTERVAL:-300}"
|
||||
LAST_IP=""
|
||||
|
||||
echo "[ip-watcher] Gestartet. Prüfintervall: ${INTERVAL}s"
|
||||
|
||||
while true; do
|
||||
CURRENT_IP=$(curl -s --max-time 10 https://api.ipify.org 2>/dev/null)
|
||||
|
||||
if [ -z "$CURRENT_IP" ]; then
|
||||
echo "[ip-watcher] Öffentliche IP konnte nicht ermittelt werden. Neuer Versuch in ${INTERVAL}s."
|
||||
elif [ "$CURRENT_IP" != "$LAST_IP" ]; then
|
||||
if [ -n "$LAST_IP" ]; then
|
||||
echo "[ip-watcher] IP geändert: ${LAST_IP} -> ${CURRENT_IP}. Starte tmserver neu..."
|
||||
docker restart tmserver
|
||||
echo "[ip-watcher] tmserver erfolgreich neu gestartet."
|
||||
else
|
||||
echo "[ip-watcher] Initiale öffentliche IP: ${CURRENT_IP}"
|
||||
fi
|
||||
LAST_IP="$CURRENT_IP"
|
||||
fi
|
||||
|
||||
sleep "$INTERVAL"
|
||||
done
|
||||
Reference in New Issue
Block a user