Зашто провера проксија у шкољци остаје неуспешна након што 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 резултату различитом од нуле може пореметити здраве сесије, док стварни проблем одредишта остаје нетакнут.