1

Я использую маршрутизатор buffalo WZR-HP-G300NH с прошивкой DD-WRT. Интернет иногда замедляется, и устройства даже не могут подключиться к WiFi. Если я перезагружаю роутер, все возвращается в норму. Это происходит несколько раз в день. Есть ли скрипт для обнаружения проблемы в роутере и автоматического перезапуска?

1 ответ1

0

Да, ты можешь!

  1. Включите поддержку JFFS во внутреннем Flash-хранилище через страницу Администрирование> Управление.
  2. SSH к вашему роутеру и сохраните следующее в /jffs/checkConnection.sh .

Это урезанная версия того, что я использую, которая также посылает мне слабые сообщения, когда интернет восстанавливается. По сути, мы проверяем известный URL. Если он отвечает, Интернет работает, в противном случае он не работает. Если соединение считается разорванным, мы сохраняем текущую временную метку в файле (если мы этого еще не сделали) и перезагружаемся. Когда соединение восстановлено, мы читаем этот файл и записываем, как долго соединение было отключено. Существуют различные операторы журнала и эхо, поэтому вы получите вывод, запускаете ли вы сценарий вручную, по конвейеру или через CRON.

#!/bin/sh
PATH="/bin:/usr/bin:/sbin:/usr/sbin:/opt/sbin:/opt/bin:/opt/usr/sbin:/opt/usr/bin"

ping -c4 google.com > /dev/null

if [ $? != 0 ]; then
   if [ ! -f /jffs/rebooted ]; then
       echo `date '+%m/%d/%Y %I:%M %p'` > /jffs/rebooted
   fi
   message="Connection down, rebooting..."
   logger -s -t "custom.checkConnection" "$message"
   echo $message
   reboot
elif [ -f /jffs/rebooted ]; then
   ts=`cat /jffs/rebooted`
   message="Internet restored, was down since $ts"
   rm -rf /jffs/rebooted
   logger -t "custom.checkConnection" "$message"
   echo "$message"
else
   echo "Everything looks good!"
fi

Вы можете запустить его вручную или задать задачу CRON для запуска каждые 5 минут или около того:

*/5 * * * * root /jffs/checkConnection.sh

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .