Il semble que mon serveur Raspberry Pi perd la connexion wifi après un temps aléatoire et ne soit pas en mesure de récupérer automatiquement.
Habituellement, un redémarrage fait à la main résout le problème.
Je voudrais le redémarrer automatiquement s'il n'y a pas de wifi après environ 30 minutes. Comment puis je faire ça?
wifi
raspberry-pi
raspbian
reboot
serrer
la source
la source
Réponses:
C'est essentiellement la réponse de Warwick, juste avec des instructions étape par étape.
Créez le script shell suivant dans votre dossier personnel:
check_inet.sh
Modifiez les autorisations afin qu'il soit exécutable
Modifiez en
/etc/crontab
utilisantsudo
et ajoutez la ligne suivante (remplacezyourname
par votre nom d'utilisateur réel):la source
Une façon serait de mettre une entrée dans le cron de root qui exécute un script toutes les 30 minutes. Le script testerait la connexion WIFI, peut-être en utilisant
ping
, et écrirait le résultat dans un fichier dans / tmp - 1 pour la connexion existe, 0 si ce n'est pas le cas. Les itérations suivantes du script vérifieraient alors ce fichier, et si c'était 0 et que la connexion WIFI était toujours mauvaise, exécutez uneinit 6
commande.la source
Je pense que la solution hololeap fonctionne.
Ma solution vérifie toutes les N minutes (selon la façon dont vous configurez votre crontab) pour une connexion réseau fonctionnelle. Si la vérification échoue, je garde la trace de l'échec. Lorsque le nombre d'échecs est> 5, j'essaie de redémarrer le wifi (vous pouvez également redémarrer Raspberry si le redémarrage du wifi échoue, consultez les commentaires).
Voici un dépôt GitHub contenant toujours la dernière version du script: https://github.com/ltpitt/bash-network-repair-automation
Voici, selon la politique générale de stackexchange (toutes les réponses ne doivent pas seulement contenir des liens), également le fichier network_check.sh, copiez-le et collez-le dans n'importe quel dossier que vous aimez, les instructions d'installation sont dans les commentaires du script.
edit 26/01/2018: J'ai supprimé les fichiers temporaires afin de laisser le script s'exécuter en mémoire et éviter d'écrire sur la carte SD de Raspberry.
la source
ifdown
etifup
, peut-être réparant le réseau, et peut-être pas. ………………………………………………………………………………… Si j'ai mal compris quelque chose, veuillez me l'expliquer. … (Suite)J'ai modifié le script de Pitto pour ma passerelle multitech mtac loraWAN (pas de fping). J'ai également ajouté un fichier journal.
la source
ifupdown
si vous ne les utilisez pas? (2) Pourquoi êtes-vous passégateway_ip
d'une variable à une constante codée en dur?network_check_tries_file
fichier (en cas d'ping
échec), il n'incrémente pas lanetwork_check_tries
variable. … (Suite)network_check_tries
égale à 0, 1, 2, 3, 4, 5 et 6 - et ce n'est qu'à la septième invocation (avec une valeurnetwork_check_tries
égale à 6) que leif [ "$network_check_tries" -gt 5 ]
test réussit. Sans doute, c'est le bon comportement. Pour autant que le script le sache, le réseau peut avoir baissé à 00:04:59, il faut donc sept échecs consécutifs pour être sûr d'avoir couvert une période de 30 minutes. … (Suite)