Quelqu'un familier avec les scripts DD-WRT?

1

Mon routeur perdra la connexion au hasard à tout. Je ne peux pas cingler, il n’a pas d’Internet, je ne peux même pas accéder à la page de configuration via une connexion filaire. Cela ne résoudra pas tant que je ne le débranche pas et ne le rebranche pas. Cela arrive souvent. C'est arrivé quatre fois au cours des 45 dernières minutes / C'est peut-être un routeur cassé, mais je l'ai eu en novembre, et je n'ai pas d'autre problème avec cela, si ce n'est d'être obligé de le débrancher. Je me demande donc si je peux créer une sorte de script permettant de vérifier si le routeur est en communication et, dans le cas contraire, il le redémarre. Je sais que dd-wrt a une fonction intégrée pour effectuer un redémarrage prévu, mais cela ne m'aide pas. Si le routeur est en panne maintenant et qu'il est prévu de redémarrer toutes les trois heures, cela ne résoudra pas vraiment mon problème.

J'ai un Linksys E1200 v1 avec DD-WRT v24-sp2 (04/07/12) mini

Breebreebran
la source

Réponses:

1

Cela devrait fonctionner (ou être un pas dans la bonne direction) le faire fonctionner au démarrage,

#!/bin/bash
while true; do
    ping -c 1 8.8.8.8 #Note: depending on software version it might be ping -n 1
    con=$? #Get exit code, anything other than 0 is bad
    if [ $con -ne 0 ]; then #If con doesn't equal 0 then
        reboot #This one is pretty obvious
    fi
    sleep 60 #Wait a minute between checks
done

la source
C'est un bon script, mais je mettrais une période de sommeil beaucoup plus longue - pourquoi lier tout le processeur en effectuant des pings, en faisant la même chose toutes les 30 ou 60 secondes - ou même en exécutant ce script toutes les minutes à partir de la crontab plutôt qu'en tant que shell au démarrage pourrait faire la même chose.
davidgo
@davidgo Bon point, je n'avais même pas pensé à crontab, mon script peut facilement être adapté si nécessaire.
J'ai essayé ce script et il a mis mon routeur dans une boucle de démarrage.
Breebreebran
@breebreebran Si une erreur survient dans la commande ping, elle redémarre. Effectuez un test ping -c 1 8.8.8.8pour vous assurer que vous n'avez pas besoin de -n au lieu de -c.
Je suis curieux, c'est quoi 8.8.8.8? Cela ne devrait-il pas être la passerelle par défaut à la place? 192.168.1.1 Parce que lorsque la passerelle par défaut ne peut pas être atteinte, rien ne peut communiquer.
Breebreebran
1

DD-wrt a également une fonction de surveillance qui semble faire exactement ce que vous voulez.

Rich Homolka
la source