Tự động khởi động lại Router khi mất kết nối mạng

0
630
(Last Updated On: Th2 17, 2019)

Chào các bạn, một năm mới đã đến và chúng ta vẫn còn háo hức với nhiều dự định cũng như nhiều công việc sẽ đón chờ. Đầu xuân năm mới xin chúc các anh em, cô bác dồi dào sức khỏe và nhiều thành công.

Em xin phép mạo muội viết bài chia sẻ về việc tự động khởi động lại Router/Modem khi bị mất kết nối mạng, đi kèm với tùy chọn khởi động lại định kỳ, vì phương pháp này khắc phục sự cố triệt để hơn thay vì chờ cho đến khi Router tự khởi động lại theo lịch trình hoặc chúng ta phải khởi động lại bằng tay, điều này chắc có lẽ không dễ dàng chút nào nếu như lúc đó là mới sáng thức dậy và bạn lướt tin tức một chút thì phải ngồi dậy Reset cái Modem ở dưới nhà hoặc trên lầu cách xa giường của bạn.

Lưu ý: Cách thức này dùng cho Router/Modem sử dụng Firmware OpenWRT, cũng có thể hoạt động với những Router hỗ trợ SSH.

Đầu tiên xin giới thiệu với các bạn Script sau:

#! /bin/sh
# Checks if the wifi conn is up.  If not, it tries to restart
# the wifi.  If that fails, then reboot.
if ping -c 3 google.com > /dev/null
then
  echo nothing > /dev/null
else
  /etc/init.d/network restart
  sleep 30
  if ping -c 3 google.com > /dev/null
  then
    echo nothing > /dev/null
  else
    date >> /root/reboot.log
    reboot
  fi
fi

Nhìn vào Script các bạn cũng có thể hiểu đó là chúng ta kiểm tra kết nối mạng hiện tại bằng cách cho Router Ping đến máy chủ Google. Nếu có trả về kết quả Ping thành công thì không vấn đề gì, nếu không thể Ping thì khởi động lại mạng, sau 30 giây tiếp tục Ping thêm một lần nữa, và kết quả vẫn không Ping được thì mới khởi động lại Router/Modem.

Mình đặt tên cho Script này là: rebootifnetdown và đặt nó vào trong thư mục /root

Như vậy để có thể chạy được Scrip này chúng ta tiến hành cấp quyền:

chmod +x /root/rebootifnetdown

Tất nhiên là chúng ta phải chạy Script này thường xuyên để kiểm tra kết nối mạng chứ, và để làm điều đó thì thêm Script này vào Crontab:

crontab -e

Dán vào cuối tập tin:

*/10 * * * * /root/rebootifnetdown

Có nghĩa là cứ 10 phút một lần thì sẽ chạy Script trên.

Đừng quên công đoạn cuối cùng đó là cho phép Cronjob mặc định tự khởi động và khởi chạy:

/etc/init.d/cron enable
/etc/init.d/cron start

Như vậy là xong rồi đó.

Ghi chú: Bạn có thể cài gói nano để chỉnh sửa các tập tin dễ dàng hơn với OpenWRT:

opkg update 
opkg install nano 

Hoặc trên giao diện đồ họa OpenWRT Luci: Vào Software –> Find package

Chúc các bạn thành công nhé! Bây giờ mỗi khi kết nối mạng có vấn đề, Router/Modem tự động khởi động lại mà bạn chẳng cần phải làm gì hết. Bạn đừng quên khởi động lại định kỳ để Router/Modem hoạt động ổn định hơn. Bạn có thể đọc bài viết tại VnGeek: Tại sao nên khởi động lại Router thường xuyên?.

Bình luận