Dùng RPi kiểm soát RPi

Thỉnh thoảng RPi bị treo nếu làm việc quá sức, thí dụ như cùng lúc nhận quá nhiều hình ảnh qua FTP.

Nếu chúng ta chạy nhiều hơn một RPi thì có thể dùng RPi này kiểm soát RPi kia.

Giả sử RPi A có vai trò kiểm soát RPi B:

  1. RPi A trước hết kiểm tra xem có thể ssh đến RPi B hay không, nếu không thì email báo động và kết thúc.
  2. Tiếp theo, RPi A kiểm tra xem tình trạng samba server trên RPi B thế nào, nếu có trục trặc thì khởi động lại samba server.
  • Công việc cần thực hiện định kỳ nên có thể dùng crontab
*/15 * * * * /mnt/tool/chkRPi IP_RPi_B
  • Tập tin bash chkRPi có nội dung như sau:
#!/bin/bash
nc -z "$1" 22 || { echo -e "Subject: RPi-$rpi was down\r\n\r\nTurn Off, then On again the RPi of $rpi"|msmtp --from=default -t admin@domain.com; exit; }
ssh "$1" '[ $(systemctl status nmbd smbd | grep -cE "active \(running\)") -ne 2 ] && /etc/init.d/samba restart'

Chú thích

  • Khi tạo cặp khóa riêng+công khai bằng ssh-keygen, chúng ta có 3 file id_rsa, id_rsa.pub và authorized_keys, dùng để đăng nhập không cần mật khẩu. Copy khóa công khai này sang remote-host (máy chủ samba)
ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host

Khi đó có thể đăng nhập vào remote-host không cần mật khẩu bằng câu lệnh

ssh remote-host
  • Kiểm tra samba server (remote-host) nếu không hoạt động thì khởi động lại samba server
systemctl status nmbd smbd | grep -cE "active \(running\)"

giá trị trả về của câu lệnh trên là 2, nếu khác đi thì có ít nhất một dịch vụ nmbd hay smbd không hoạt động

Leave a Comment

Filed under Software

Leave a Reply