Tôi đã viết một tập lệnh giám sát để kiểm tra xem máy chủ VPN trên máy của tôi (có thể truy cập qua internet) có hoạt động bình thường hay không. Đã có sự cố ngẫu nhiên sau thời gian dài yêu cầu khởi động lại.
Trong một vòng lặp, máy chủ mục tiêu được ping. Sau 20 lần ping không thành công, máy sẽ khởi động lại.
Thật không may, máy chủ được sử dụng để ping phân giải thành một IP được liên kết với giao diện tap0
. RTT dưới một phần nghìn giây cho biết rằng không có gói nào được gửi qua internet, vì vậy tuyến đường tôi theo dõi được bắc cầu trên máy cục bộ. Máy được kết nối internet qua eth0
và có thể được ping từ bất kỳ máy tính nào. Nhưng khi sử dụng ping -I eth0 <máy chủ>
, tất cả những gì tôi nhận được là thời gian chờ.
đường theo dõi
hiển thị tuyến đường chính xác khi sử dụng -tôi eth0
nhưng bỏ qua kết quả giao diện trong một đầu ra ngay lập tức với một dòng, trỏ trực tiếp vào máy của tôi (vì tên máy chủ phân giải thành địa chỉ IP của tap0
).
Dưới đây là kịch bản của tôi (được thôi, điều này có thể không thực sự hữu ích, nhưng đối với những bạn quan tâm, hãy xem nó):
#!/bin/bash
không thành công=0
while [ $unsuccessful -lt 20 ]; làm
tiếng vang -n " ->"
ping -c 1 -W 2 <addr của máy chủ vpn> > /dev/null
nếu [ $? -ne 0 ]; sau đó
((không thành công ++))
echo "Không thành công: $không thành công"
khác
không thành công=0
tiếng vang -n "<-"
fi
ngủ 10
xong
lặp lại "Tạm biệt"
khởi động lại