curl සාර්ථක වූ පසුවත් shell proxy පරීක්ෂාව අසාර්ථකව පවතින්නේ ඇයි
පසුකාලීන proxy පරීක්ෂා සාර්ථක වූ පසු shell විචල්යයේ පැරණි curl අසාර්ථකත්වය තබා නොගැනීමෙන් වළකින්න.
proxy එක් වරක් අසාර්ථක වේ. පසුකාලීන ඉල්ලීම් සාර්ථක වුවත්, නිරීක්ෂකයා තවත් අසාර්ථකත්වයක් ප්රකාශ කරමින් සිටී. script එක ඊයේගේ නික්මුම් තත්ත්වය මතක තබාගෙන තිබුණාදැයි පරීක්ෂා කරන්න.
මෙම රටාව විචල්යය යාවත්කාලීන කරන්නේ 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
ලිපිනය සහ කාල නිදර්ශන වේ. මෙය පැරණි විචල්යය ඉවත් කරයි; කුමන ප්රතිසාධන ක්රියාව සුදුසුද යන්න තීරණය නොකරයි.
නිරීක්ෂණය පටුව තබා ගන්න. ඉල්ලීම proxy, ඉදිරි මාර්ගය, ගමනාන්තය, TLS සත්යාපනය සහ HTTP ප්රතිඵලය මත රඳා පවතී. SOCKS සේවාව සුවපත්ව තිබියදීත් ඉලක්කයේ බාධාවක් එය අසාර්ථක කළ හැක. අනපේක්ෂිත HTTP 200 පිටුවක් ද අපේක්ෂිත අන්තර්ගතය ලබා නොදී තත්ත්වය පමණක් මත පදනම් වූ පරීක්ෂාවක් පසු කළ හැක.
පාලිත ප්රතිචාර ගිවිසුමක් තෝරා අසාර්ථකත්ව අවස්ථාව රඳවා ගන්න. සෑම ශුන්ය නොවන curl ප්රතිඵලයකදීම proxy නැවත ආරම්භ කිරීම සුවපත් සැසි බාධා කළ හැකි අතර සැබෑ ගමනාන්ත ගැටලුව ස්පර්ශ නොකර පවතී.