Proxy bir kez başarısız olur. Sonraki istekler başarılı olur, ancak gözcü başka bir hatayı duyurmaya devam eder. Betiğin dünkü çıkış durumunu hatırlayıp hatırlamadığını denetleyin.

Bu kalıp değişkeni yalnızca curl başarısız olduğunda günceller:

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

İlk sıfır olmayan sonuçtan sonra başarılı bir yineleme status değişkenini olduğu gibi bırakır. Yalnızca curl başarılı olduğu için sıfıra dönmez.

Bunun yerine geçerli komuta göre dallanın:

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

Adres ve süreler örnektir. Bu, eskimiş değişkeni kaldırır; hangi kurtarma eyleminin uygun olduğuna karar vermez.

Gözlemi dar tutun. İstek proxy'ye, sonraki rotaya, hedefe, TLS doğrulamasına ve HTTP sonucuna bağlıdır. SOCKS hizmeti sağlıklıyken hedefteki bir kesinti onu başarısız kılabilir. Beklenmedik bir HTTP 200 sayfası da beklenen içeriği sunmadan yalnızca duruma dayalı bir denetimi geçebilir.

Denetlenen bir yanıt sözleşmesi seçin ve hata aşamasını koruyun. Sıfır olmayan her curl sonucunda proxy'yi yeniden başlatmak sağlıklı oturumları bozabilir, gerçek hedef sorunu ise el sürülmeden kalır.

İlgili makaleler