Eu preciso reiniciar meu roteador ocasionalmente para consertar minha conexão com a internet. Posso detectá-lo com um script e reiniciar automaticamente?

1

Estou usando o roteador de buffalo WZR-HP-G300NH com firmware DD-wrt. A internet às vezes fica mais lenta e os dispositivos não podem nem mesmo entrar no WiFi. Se eu reiniciar o roteador, tudo voltará ao normal. Isso acontece várias vezes ao dia. Existe algum script para detectar o problema no roteador e reiniciar automaticamente?

    
por alex 10.07.2016 / 08:24

1 resposta

0

Sim, você pode!

  1. Ativar o suporte a JFFS no Armazenamento Flash interno via Administração > Página de gerenciamento.
  2. SSH para o seu roteador e salve o seguinte em /jffs/checkConnection.sh .

Esta é uma versão reduzida do que eu uso, que também me envia mensagens de folga quando a internet é restaurada. Basicamente, estamos pingando um URL bem conhecido. Se responder, a Internet está ativa, caso contrário, ela está inativa. Se a conexão for considerada inativa, armazenamos o registro de data e hora atual em um arquivo (se ainda não o fizemos) e reinicializamos. Quando a conexão é feita de volta, lemos esse arquivo e registramos por quanto tempo a conexão foi interrompida. As várias instruções de log e echos estão lá, portanto, você obtém a saída se executar o script manualmente, canalizado para um arquivo de log ou via 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

Você pode executá-lo manualmente ou definir uma tarefa CRON para executá-lo a cada 5 minutos ou mais:

*/5 * * * * root /jffs/checkConnection.sh
    
por 10.01.2018 / 15:14