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 ଫଳାଫଳରେ ପ୍ରକ୍ସି ପୁନଃ ଆରମ୍ଭ କଲେ ସୁସ୍ଥ ସେସନ ବାଧାପ୍ରାପ୍ତ ହୋଇପାରେ, ଯେତେବେଳେ ପ୍ରକୃତ ଗନ୍ତବ୍ୟ ସମସ୍ୟା ଅସ୍ପୃଶ୍ୟ ରହେ।