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 முடிவிலும் ப்ராக்ஸியை மறுதொடக்கம் செய்வது ஆரோக்கியமான அமர்வுகளைச் சீர்குலைக்கலாம், அதே சமயம் உண்மையான இலக்கு சிக்கல் தொடப்படாமல் இருக்கும்.