প্রক্সিটি একবার ব্যর্থ হয়। পরের অনুরোধগুলি সফল হয়, তবুও ওয়াচডগ আরও একটি ব্যর্থতার ঘোষণা দিতে থাকে। স্ক্রিপ্টটি গতকালের এক্সিট স্ট্যাটাস মনে রেখেছে কি না দেখুন।

এই ধাঁচটি কেবল 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 ফলাফলে প্রক্সি পুনরায় চালু করা সুস্থ সেশন ব্যাহত করতে পারে, অথচ আসল গন্তব্যের সমস্যা অসমাধান থেকে যায়।

সম্পর্কিত নিবন্ধ