curl အောင်မြင်ပြီးနောက် shell proxy စစ်ဆေးမှု ဘာကြောင့် မအောင်မြင်ဘဲ ကျန်နေသနည်း
နောက်ပိုင်း proxy စစ်ဆေးမှုများ အောင်မြင်ပြီးနောက် shell ကိန်းရှင်ထဲတွင် curl မအောင်မြင်မှု ဟောင်းကို မထားရှိပါနှင့်။
proxy သည် တစ်ချီ မအောင်မြင်ပါ။ နောက်ပိုင်း တောင်းဆိုမှုများ အောင်မြင်သော်လည်း စောင့်ကြည့်စနစ်က နောက်ထပ် မအောင်မြင်မှုတစ်ခုကို ဆက်လက် ကြေညာနေပါသည်။ script က မနေ့က ထွက်ပေါက်အခြေအနေကို မှတ်ထားခြင်း ရှိ/မရှိ စစ်ဆေးပါ။
ဤပုံစံသည် curl မအောင်မြင်မှသာ ကိန်းရှင်ကို အပ်ဒိတ်လုပ်ပါသည်။
status=0
# Repeated inside a loop:
curl ... || status=$?
ပထမဆုံး သုညမဟုတ်သော ရလဒ်ပြီးနောက် အောင်မြင်သော ထပ်ကျော့မှုက status ကို မထိဘဲ ထားရှိပါသည်။ curl အောင်မြင်ခဲ့သောကြောင့်သာ ၎င်းသည် သုည မဖြစ်ပါ။
အစား လက်ရှိ command အပေါ် ခွဲထွက်ပါ။
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
လိပ်စာနှင့် အချိန်များသည် ဥပမာသာဖြစ်ပါသည်။ ဤအရာက ကိန်းရှင်ဟောင်းကို ဖယ်ရှားပေးသည်။ မည်သည့် ပြန်လည်ကုစားမှု သင့်လျော်သည်ကို မဆုံးဖြတ်ပါ။
စောင့်ကြည့်မှုကို ကျဉ်းအောင် ထားပါ။ တောင်းဆိုမှုသည် proxy၊ ရှေ့ဆက်လမ်းကြောင်း၊ ပန်းတိုင်၊ TLS စစ်ဆေးမှုနှင့် HTTP ရလဒ်အပေါ် မူတည်ပါသည်။ SOCKS ဝန်ဆောင်မှု ကောင်းနေစဉ်တွင်ပင် ပန်းတိုင်ချို့ယွင်းမှုက ၎င်းကို မအောင်မြင်စေနိုင်ပါသည်။ မမျှော်လင့်သော HTTP 200 စာမျက်နှာသည်လည်း မျှော်လင့်ထားသော အကြောင်းအရာ ကို မပေးဘဲ အခြေအနေအပေါ် အခြေခံသော စစ်ဆေးမှုကို ဖြတ်သန်းနိုင်ပါသည်။
ထိန်းချုပ်ထားသော တုံ့ပြန်မှု သဘောတူစာချုပ်ကို ရွေးချယ်ပြီး မအောင်မြင်မှု အဆင့်ကို ထိန်းသိမ်းပါ။ သုညမဟုတ်သော curl ရလဒ်တိုင်းတွင် proxy ကို ပြန်လည်စတင်ခြင်းက ကောင်းမွန်သော ဆက်ရှင်များကို အနှောင့်အယှက် ဖြစ်စေနိုင်ပြီး စစ်မှန်သော ပန်းတိုင်ပြဿနာမှာ မထိဘဲ ကျန်နေပါသည်။