ሼል የፕሮክሲ ምርመራ ከ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 ውጤት ላይ ፕሮክሲውን እንደገና ማስጀመር ጤናማ ክፍለ ጊዜዎችን ሊያውክ ይችላል፣ እውነተኛው የመድረሻ ችግር ግን ሳይነካ ይቀራል።