ເປັນຫຍັງການກວດສອບ proxy ໃນ shell ຈຶ່ງຍັງລົ້ມເຫຼວ ຫຼັງຈາກ curl ສຳເລັດ
ຫຼີກລ້ຽງການເກັບຄວາມລົ້ມເຫຼວຂອງ curl ເກົ່າໄວ້ໃນຕົວແປ shell ຫຼັງຈາກການກວດສອບ proxy ຕໍ່ໄປສຳເລັດ.
Proxy ລົ້ມເຫຼວໜຶ່ງເທື່ອ. ຄຳຮ້ອງຕໍ່ໄປສຳເລັດ, ແຕ່ຕົວຕິດຕາມຍັງປະກາດຄວາມລົ້ມເຫຼວອີກ. ກວດເບິ່ງວ່າ script ຈື່ສະຖານະອອກຂອງມື້ວານນີ້ຫຼືບໍ່.
ຮູບແບບນີ້ອັບເດດຕົວແປພຽງແຕ່ເມື່ອ 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
ທີ່ຢູ່ ແລະ ເວລາເປັນຕົວຢ່າງ. ສິ່ງນີ້ລຶບຕົວແປເກົ່າ; ມັນບໍ່ໄດ້ຕັດສິນວ່າການຟື້ນຟູໃດເໝາະສົມ.
ຮັກສາການສັງເກດໃຫ້ແຄບ. ຄຳຮ້ອງຂຶ້ນກັບ proxy, ເສັ້ນທາງຕໍ່ໄປ, ປາຍທາງ, ການກວດສອບ TLS ແລະ ຜົນ HTTP. ການຂັດຂ້ອງທີ່ປາຍທາງອາດເຮັດໃຫ້ມັນລົ້ມເຫຼວ ໃນຂະນະທີ່ບໍລິການ SOCKS ຍັງດີ. ໜ້າ HTTP 200 ທີ່ບໍ່ຄາດຄິດກໍອາດຜ່ານການກວດສອບທີ່ອີງໃສ່ສະຖານະພຽງຢ່າງດຽວ ໂດຍບໍ່ສະໜອງ ເນື້ອຫາທີ່ຄາດຫວັງ.
ເລືອກສັນຍາການຕອບສະໜອງທີ່ຄວບຄຸມ ແລະ ຮັກສາຂັ້ນຕອນຄວາມລົ້ມເຫຼວ. ການເລີ່ມ proxy ຄືນໃໝ່ທຸກຜົນ curl ທີ່ບໍ່ແມ່ນສູນອາດລົບກວນເຊສຊັນທີ່ດີ ໃນຂະນະທີ່ບັນຫາປາຍທາງທີ່ແທ້ຈິງຍັງບໍ່ໄດ້ຮັບການແກ້ໄຂ.