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 नतिजामा प्रोक्सी पुनः सुरु गर्दा स्वस्थ सत्रहरू बाधित हुन सक्छन्, जबकि वास्तविक गन्तव्य समस्या अछुतो रहन्छ।