A proxy egyszer meghibásodik. A későbbi kérések sikerülnek, a felügyelet mégis újabb hibát jelez. Ellenőrizze, hogy a szkript megjegyezte-e a tegnapi kilépési állapotot.

Ez a minta csak akkor frissíti a változót, amikor a curl meghibásodik:

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

Az első nem nulla eredmény után egy sikeres iteráció érintetlenül hagyja a status változót. Nem lesz nulla csak azért, mert a curl sikeres volt.

Ágazzon inkább az aktuális parancsra:

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

A cím és az időzítések szemléltetők. Ez eltávolítja az elavult változót; nem dönti el, melyik helyreállítási művelet megfelelő.

Tartsa szűken a megfigyelést. A kérés a proxytól, a továbbvezető útvonaltól, a céltól, a TLS-ellenőrzéstől és a HTTP-eredménytől függ. A cél kiesése sikertelenné teheti, miközben a SOCKS szolgáltatás egészséges. Egy váratlan HTTP 200 oldal is átmehet egy csak állapotra épülő ellenőrzésen anélkül, hogy a várt tartalmat nyújtaná.

Válasszon szabályozott válaszkontraktust, és tartsa meg a hiba szakaszát. A proxy újraindítása minden nem nulla curl-eredménynél megzavarhatja az egészséges munkameneteket, miközben a valódi célprobléma érintetlen marad.

Kapcsolódó cikkek