432просмотров
9.9%от подписчиков
24 марта 2026 г.
Score: 475
Проверка доступности DNS и fallback на другой сервер Когда DNS внезапно падает, проблемы выглядят как сбой сети или сервиса. Чтобы не гадать, можно сделать простой механизм: проверяем DNS и если не отвечает, то временно переключаемся на резервный сервер. Базовый скрипт #!/bin/bash TEST_DOMAIN="google.com"
PRIMARY_DNS="8.8.8.8"
FALLBACK_DNS="1.1.1.1"
RESOLV="/etc/resolv.conf"
BACKUP="/tmp/resolv.conf.bak" if dig +time=2 +tries=1 "$TEST_DOMAIN" @"$PRIMARY_DNS" > /dev/null; then echo "DNS доступен" exit 0
fi echo "DNS недоступен, переключаемся на fallback" cp "$RESOLV" "$BACKUP" cat > "$RESOLV" <<EOF
nameserver $FALLBACK_DNS
EOF dig - быстрая проверка реального DNS-запроса
+time и +tries - не зависаем надолго
resolv.conf сохраняется перед изменением Автовосстановление (по cron) if dig "$TEST_DOMAIN" @"$PRIMARY_DNS" > /dev/null && [ -f "$BACKUP" ]; then mv "$BACKUP" "$RESOLV"
fi ⚠️ Обратить внимание В системах с systemd-resolved или NetworkManager resolv.conf может перезаписываться;
Для серверов лучше использовать resolvectl или override конфигурации;
Скрипт требует root. 🚪 Bash Ready | #практика