Die proxy faal een keer. Latere versoeke slaag, maar die waghouer bly 'n nuwe fout aankondig. Kyk of die script gister se afsluitstatus onthou het.

Hierdie patroon werk die veranderlike net by wanneer curl faal:

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

Na die eerste nie-nul resultaat bly status onveranderd in 'n geslaagde herhaling. Dit word nie nul bloot omdat curl geslaag het nie.

Vertak eerder op die huidige opdrag:

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

Die adres en tydsberekeninge is illustratief. Dit verwyder die verouderde veranderlike; dit besluit nie watter herstelaksie gepas is nie.

Hou die waarneming eng. Die versoek hang af van die proxy, die verdere roete, die bestemming, TLS-verifikasie en die HTTP-uitkoms. 'n Onderbreking by die teiken kan dit laat misluk terwyl die SOCKS-diens gesond is. 'n Onverwagte HTTP 200-blad kan ook 'n status-en-toets slaag sonder om die verwagte inhoud te lewer.

Kies 'n gekontroleerde responkontrak en hou die mislukkingsfase by. Om die proxy by elke nie-nul curl-resultaat te herbegin, kan gesonde sessies ontwrig terwyl die werklike bestemmingsprobleem onaangeraak bly.

Verwante artikels