Proxy jednou selže. Pozdější požadavky uspějí, ale hlídač dál ohlašuje další selhání. Zkontrolujte, zda si skript pamatuje včerejší návratový stav.

Tento vzor aktualizuje proměnnou jen tehdy, když curl selže:

status=0
# Repeated inside a loop:
curl ... || status=$?

Po prvním nenulovém výsledku ponechá úspěšná iterace status beze změny. Nezmění se na nulu jen proto, že curl uspěl.

Větveňte se místo toho podle aktuálního příkazu:

if curl --proxy socks5h://127.0.0.1:1080 --noproxy '' \
    --fail --silent --show-error --connect-timeout 3 --max-time 10 \
    https://health.example/ >/dev/null; then
    echo "check succeeded"
else
    echo "check failed"
fi

Adresa a časy jsou ilustrativní. Tím se odstraní zastaralá proměnná; nerozhoduje to však, jaká nápravná akce je vhodná.

Udržujte pozorování úzké. Požadavek závisí na proxy, další trase, cíli, ověření TLS a výsledku HTTP. Výpadek cíle jej může shodit, i když je služba SOCKS zdravá. Neočekávaná stránka HTTP 200 také může projít kontrolou založenou jen na stavu, aniž by poskytla očekávaný obsah.

Zvolte řízený kontrakt odpovědi a zachovejte fázi selhání. Restartování proxy při každém nenulovém výsledku curl může narušit zdravé relace, zatímco skutečný problém cíle zůstává nedotčen.

Související články