Зошто проверката на прокси во школка останува неуспешна откако curl ќе успее
Избегнете да задржите стар curl неуспех во променлива на школка откако подоцнежните проверки на прокси ќе успеат.
Проксито откажува еднаш. Подоцнежните барања успеваат, но надгледувачот продолжува да објавува уште еден неуспех. Проверете дали скриптата го запомнила излезниот статус од вчера.
Оваа шема ја ажурира променливата само кога curl откажува:
status=0
# Repeated inside a loop:
curl ... || status=$?
По првиот резултат различен од нула, успешна итерација го остава status недопрено. Не станува нула само затоа што curl успеал.
Наместо тоа, разгранете се по тековната команда:
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
Адресата и времињата се илустративни. Ова ја отстранува застарената променлива; не одлучува кое дејство за обновување е соодветно.
Држете го набљудувањето тесно. Барањето зависи од проксито, понатамошната рута, одредиштето, TLS проверката и HTTP исходот. Прекин на целта може да го собори додека SOCKS услугата е здрава. Неочекувана HTTP 200 страница исто така може да помине проверка само на статус без да ја достави очекуваната содржина.
Изберете контролиран договор за одговор и задржете ја фазата на неуспех. Рестартирањето на проксито при секој curl резултат различен од нула може да ги наруши здравите сесии, додека вистинскиот проблем со одредиштето останува недопрен.