WiFi_Check.sh
Hallo,
gelegentlich habe ich das Problem, das der RaspBerry sich nicht automatisch mit dem WLAN wieder verbindet, wenn dieses mal unterbrochen war.
Das Script prüft ob der Gateway erreichbar ist, wenn nicht wird das WLAN interface neu gestartet.
Der Test nach dem Gateway erfolgt aller 5 min, ist aber anpassbar.
Das Script ist in meinem Tool-Pack „hbridge_install.tar.gz“ enthalten.
DownloadLink in:
Homebridge-Tool zum aktualisieren, sichern, neu aufsetzen.....
Nach dem ersten Start:
wird ein Systemlink angelegt, danach ist ein Start durch
Eingabe von:
möglich.
Damit sich der Raspberry automatisch mit dem WLAN, nach dessen Ausfall neu verbindet.
Prüft das Script ob der Gateway erreichbar ist. Wenn dieser nicht nicht erreichbar ist, wird das Interface neu gestartet.
Einstellbar mit Variable: max_Reset=9 # after 9 WLAN-Reset -> Raspberry reboot
Wenn das Interface 9 mal resetet wurde wird der Raspberry neu gestartet.
Dazu muss das Script im cron von user root laufen
(s.u. Instructions).
Das Script ermittelt automatisch:
- das benutzte Interface
- den Gateway
- den Installationsort
Hinnweis!!
Ab v.0.17 sollte das Script auch mit einem LAN Interface funktionieren und es wurden einige Bugs behoben.
Anzeige aller Parameter:
WiFi_Check.sh -?
Wenn die autom. Erkennung fehl schlägt, können diese im Script gesetzt werden.
Das einrichten im cron ist im Script beschrieben.
#
max_Reset=9 # after 9 WLAN-Reset -> Raspberry reboot
# Purpose:
#
# The script checks, in WiFi the default gateway is reachable
# and if not WiFi will be restarted
#
# Uses a lock file which prevents the script from running more
# than one at a time. If lockfile is old, it removes it
#
# If auto-detection returns incorrect values then manually set
# remove the Route (#) and adjust variable,
# interface = "wlan0" monitors interface wlan0
# ToolDir = "" folder where this script resides
#
#Interface="wlan0"
#ToolDir="$HOME/hbridge_install/files"
#Gateway="192.168.23.1"
#
# Parameters:
# -h/? shows the help and displays the automatically determined variables (exit -1)
# -r removes the system link (exit 1)
# -kill kill the Process while it is still running (exit 3)
#
# Instructions:
# o Add to crontab from user root
# o sudo su
# o crontab -e
#
# Run Every 5 mins - Seems like ever min is over kill unless
# this is a very common problem. If once a min change */5 to *
# once every 2 mins */5 to */2 ...
#
# */5 * * * * /usr/local/bin/WiFi_Check.sh 2>&1 | /usr/bin/logger -t WiFi_check
#
Alles anzeigen
So sieht der Logeintrag aus, wenn alles in Ordnung ist:
WiFi_Check.sh
hier ein Logauszug:
Installation in crontab von User root eintragen:
sudo -i
diese Zeile am Ende einfügen:
*/5... prüft aller 5 Minuten ob eine WLAN Verbindung besteht.
*/2... prüft aller 2 Minuten ob eine WLAN Verbindung besteht.
beenden und speichern, das war es schon.
Jetzt sollte aller 5 min im syslog erscheinen:
Version v.0.17 angehangen