O proxy falha uma vez. Os pedidos seguintes funcionam, mas o vigilante continua a anunciar outra falha. Verifique se o script se lembrou do estado de saída de ontem.

Este padrão só atualiza a variável quando o curl falha:

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

Depois do primeiro resultado diferente de zero, uma iteração bem-sucedida deixa status intacto. Não passa a zero só porque o curl funcionou.

Em vez disso, ramifique no comando atual:

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

O endereço e os tempos são ilustrativos. Isto remove a variável obsoleta; não decide qual ação de recuperação é adequada.

Mantenha a observação estreita. O pedido depende do proxy, da rota seguinte, do destino, da verificação TLS e do resultado HTTP. Uma indisponibilidade do alvo pode fazê-lo falhar enquanto o serviço SOCKS está saudável. Uma página HTTP 200 inesperada também pode passar uma verificação baseada apenas no estado sem fornecer o conteúdo esperado.

Escolha um contrato de resposta controlado e conserve a etapa da falha. Reiniciar o proxy a cada resultado curl diferente de zero pode perturbar sessões saudáveis enquanto o verdadeiro problema do destino fica intacto.

Artigos relacionados