Files

31 lines
877 B
Bash
Executable File

#!/bin/bash
# wisp-vpn-keepalive.sh — Check VPN status and reconnect if down
# Designed to run as a systemd timer every 5 minutes
VPN_SCRIPT="/root/.hermes/scripts/wisp-backup/home-router-vpn.sh"
STATUS_FILE="/tmp/wisp-vpn-status"
# Check if VPN is up
if "$VPN_SCRIPT" status >/dev/null 2>&1; then
# VPN is up — write OK timestamp
date +%s > "$STATUS_FILE"
exit 0
else
# VPN is down — attempt reconnect
LAST_OK=$(cat "$STATUS_FILE" 2>/dev/null || echo "0")
NOW=$(date +%s)
ELAPSED=$((NOW - LAST_OK))
echo "[-] WISP VPN is DOWN (was up ${ELAPSED}s ago). Attempting reconnect..."
"$VPN_SCRIPT" up 2>&1
if "$VPN_SCRIPT" status >/dev/null 2>&1; then
echo "[+] WISP VPN reconnected successfully"
date +%s > "$STATUS_FILE"
exit 0
else
echo "[-] WISP VPN reconnect failed"
exit 1
fi
fi