Proxy lỗi một lần. Các yêu cầu sau đó thành công, nhưng trình giám sát vẫn tiếp tục báo một lỗi khác. Hãy kiểm tra xem script có ghi nhớ trạng thái thoát của hôm qua không.

Mẫu này chỉ cập nhật biến khi curl lỗi:

status=0
# Repeated inside a loop:
curl ... || status=$?

Sau kết quả khác không đầu tiên, một vòng lặp thành công để status nguyên vẹn. Nó không trở thành không chỉ vì curl đã thành công.

Thay vào đó, hãy rẽ nhánh theo lệnh hiện tại:

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

Địa chỉ và thời gian chỉ là ví dụ. Việc này loại bỏ biến cũ; nó không quyết định hành động khôi phục nào là phù hợp.

Giữ phạm vi quan sát hẹp. Yêu cầu phụ thuộc vào proxy, tuyến tiếp theo, đích đến, xác minh TLS và kết quả HTTP. Sự cố ở đích có thể khiến nó lỗi trong khi dịch vụ SOCKS vẫn khỏe. Một trang HTTP 200 bất ngờ cũng có thể vượt qua kiểm tra chỉ dựa trên trạng thái mà không cung cấp nội dung mong đợi.

Chọn một hợp đồng phản hồi có kiểm soát và giữ lại giai đoạn lỗi. Khởi động lại proxy ở mỗi kết quả curl khác không có thể làm gián đoạn các phiên khỏe mạnh trong khi vấn đề thực sự ở đích vẫn chưa được xử lý.

Bài viết liên quan