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 ഫലത്തിലും പ്രോക്സി പുനരാരംഭിക്കുന്നത് ആരോഗ്യകരമായ സെഷനുകളെ തടസ്സപ്പെടുത്താം, യഥാർത്ഥ ലക്ഷ്യ പ്രശ്നം തൊടാതെ തുടരുകയും ചെയ്യും.