curl başarılı olduktan sonra kabuk proxy denetimi neden başarısız kalır
Sonraki proxy denetimleri başarılı olduktan sonra kabuk değişkeninde eski bir curl hatası tutmaktan kaçının.
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.