Proxy raz zlyhá. Neskoršie požiadavky uspejú, ale dohľad stále hlási ďalšie zlyhanie. Skontrolujte, či si skript pamätal včerajší návratový stav.

Tento vzor aktualizuje premennú len vtedy, keď curl zlyhá:

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

Po prvom nenulovom výsledku úspešná iterácia ponechá status bez zmeny. Nezmení sa na nulu len preto, že curl uspel.

Namiesto toho sa rozvetvite podľa aktuálneho prí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 sú ilustratívne. Toto odstráni zastaranú premennú; nerozhoduje však, ktorá nápravná akcia je vhodná.

Udržujte pozorovanie úzke. Požiadavka závisí od proxy, ďalšej trasy, cieľa, overenia TLS a výsledku HTTP. Výpadok cieľa ju môže zhodiť, hoci služba SOCKS je zdravá. Neočakávaná stránka HTTP 200 tiež môže prejsť kontrolou založenou len na stave bez poskytnutia očakávaného obsahu.

Zvoľte riadený kontrakt odpovede a zachovajte fázu zlyhania. Reštartovanie proxy pri každom nenulovom výsledku curl môže narušiť zdravé relácie, kým skutočný problém cieľa zostáva nedotknutý.

Súvisiace články