Sim, você pode!
- Ativar o suporte a JFFS no Armazenamento Flash interno via Administração > Página de gerenciamento.
- 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