Kwa nini ukaguzi wa proksi kwenye shell unabaki umeshindwa baada ya curl kufaulu
Epuka kutunza hitilafu ya zamani ya curl katika kigezo cha shell baada ya ukaguzi wa proksi wa baadaye kufaulu.
Proksi inashindwa mara moja. Maombi ya baadaye yanafaulu, lakini mwangalizi anaendelea kutangaza hitilafu nyingine. Angalia kama script ilikumbuka hali ya kutoka ya jana.
Mchoro huu husasisha kigezo tu wakati curl inashindwa:
status=0
# Repeated inside a loop:
curl ... || status=$?
Baada ya tokeo la kwanza lisilo sifuri, mzunguko uliofaulu huacha status bila kuguswa. Haifanyiki sifuri kwa sababu tu curl ilifaulu.
Badala yake, tawanya kwa amri ya sasa:
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
Anwani na nyakati ni mifano. Hii huondoa kigezo kilichopitwa na wakati; haiamui hatua ipi ya urejeshaji inafaa.
Weka uchunguzi mwembamba. Ombi hutegemea proksi, njia inayofuata, lengwa, uthibitishaji wa TLS na tokeo la HTTP. Hitilafu kwenye lengwa inaweza kuishindwa wakati huduma ya SOCKS iko salama. Ukurasa wa HTTP 200 usiotarajiwa pia unaweza kupita ukaguzi wa hali pekee bila kutoa maudhui yanayotarajiwa.
Chagua mkataba wa majibu unaodhibitiwa na uhifadhi hatua ya kushindwa. Kuanzisha upya proksi kwa kila tokeo la curl lisilo sifuri kunaweza kuvuruga vikao salama wakati tatizo halisi la lengwa linabaki bila kushughulikiwa.