Инструменты пользователя

Инструменты сайта


projects:wg_watchdog

Это старая версия документа!


WG Wathcdog

Проверка наличия интерфейса и перезапуск при необходимости

wg_watchdog.sh
#!/bin/bash
# ==AUTOEXEC==
# === WG WatchDog ===
# * wg-watchdog.sh — Мини-наблюдатель WireGuard
# * Проверяет наличие интерфейса wg0 
# * и перезапускает WireGuard при необходимости.
 
sleep 15
 
if [ -f /tmp/wg-watchdog.disabled ]; then
  echo "🛑 Watchdog отключён флагом /tmp/wg-watchdog.disabled"
  exit 0
fi
 
LOG_FILE="/var/log/wg-watchdog.log"
echo "$(date '+%Y-%m-%d %H:%M:%S') :: 🔍 Проверка состояния WireGuard..." >> "$LOG_FILE"
 
# Проверка интерфейса wg0 и его состояния
if ip link show wg0 &>/dev/null; then
  if ip link show wg0 | grep -q "state UP"; then
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ Интерфейс wg0 существует и активен" >> "$LOG_FILE"
  else
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] ⚠️ Интерфейс wg0 существует, но не активен. Перезапуск..." >> "$LOG_FILE"
    sudo systemctl restart wg-quick@wg0
  fi
else
  echo "[$(date '+%Y-%m-%d %H:%M:%S')] ❌ Интерфейс wg0 не найден. Перезапуск..." >> "$LOG_FILE"
  sudo systemctl restart wg-quick@wg0
fi

crontab -e - открывает

projects/wg_watchdog.1742757903.txt.gz · Последнее изменение: 2025/03/23 22:25 —

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution 4.0 International
CC Attribution 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki