50 lines
2.7 KiB
Markdown
50 lines
2.7 KiB
Markdown
# Fritz!Box-Neustart-Script
|
|
|
|
![avm-fritzbox.png](avm-fritzbox.png?raw=true "avm-fritzbox.png")
|
|
|
|
Das Bash-Skript `fritzbox-restart.v1.sh` ermöglicht das Neustarten einer Fritzbox über das TR-064-Protokoll. Das Skript ist kompatibel mit Fritzboxen ab FritzOS 6.0.
|
|
|
|
## Verwendung
|
|
|
|
1. Stelle sicher, dass du als Administrator auf deinem System angemeldet bist.
|
|
2. Öffne ein Terminal.
|
|
3. Navigiere zum Verzeichnis, in dem sich das Skript befindet.
|
|
4. Führe den folgenden Befehl aus, um das Skript zu starten:
|
|
|
|
```bash
|
|
bash ./fritzbox-restart.v1.sh
|
|
```
|
|
|
|
Alternativ kannst du den Befehl auch anpassen und direkt im Terminal ausführen.
|
|
|
|
```bash
|
|
ping -c 1 1.1.1.1 >/dev/null || (for i in {1..3}; do ping -c 1 1.1.1.1 >/dev/null && exit; sleep 30; done; /home/scripts/network/fritzbox-reboot-v1.0.sh)
|
|
```
|
|
|
|
Dieser Befehl stellt sicher, dass keine Internetverbindung besteht, bevor das Skript ausgeführt wird. Es versucht, eine Verbindung zum öffentlichen DNS-Server `1.1.1.1` herzustellen und führt das Skript nur aus, wenn die Verbindung 3 mal nicht erfolgreich war. Andernfalls wird nichts weiter unternommen.
|
|
|
|
Das Skript sendet über `curl` einen SOAP-Request an die Fritzbox, um den Neustart auszulösen. Die Fritzbox-IP-Adresse, der Benutzername und das Passwort werden in den Variablen `IPS`, `FRITZ_USER` und `FRITZ_PW` festgelegt. Du kannst diese Variablen entsprechend deiner Konfiguration anpassen.
|
|
Es empfiehlt sich einen dedizierten `Restart`-Benutzer anzulegen. In den meisten Fällen kann hier `root` eingetragen werden, wenn kein Username zum Login notwendig ist.
|
|
|
|
Als Cronjob kann dieses Script natürlich auch ausgeführt werden.
|
|
|
|
Ein Beispiel:
|
|
```bash
|
|
*/30 * * * * ping -c 1 1.1.1.1 >/dev/null || (for i in {1..3}; do ping -c 1 1.1.1.1 >/dev/null && exit; sleep 30; done; /home/scripts/network/fritzbox-reboot-v1.0.sh)
|
|
```
|
|
|
|
Diese Cronjob stellt eine Verbindung zum öffentlichen DNS-Server `1.1.1.1` her. Ist die Verbindung erfolgreich, passiert nichts weiter. Ist die Verbindung 3 mal nicht erfolgreich gewesen, so wird dss Script ausgeführt. Der Cronjob führt die Abfrage alle 30 Minuten aus.
|
|
|
|
Wer seine Fritzbox einfach nur zur geplanten zeit neustarten möchte, kann natürlich auch einfach nur das Script ausführen:
|
|
```
|
|
# FRITZ! Geräte neustarten
|
|
@weekly root /home/scripts/network/fritzbox-reboot-v1.0.sh)
|
|
```
|
|
|
|
Bitte beachte, dass du vor der Verwendung des Skripts die Variablen `IPS`, `FRITZ_USER` und `FRITZ_PW` korrekt einstellen und die Ausführungsberechtigungen für das Skript setzen musst.
|
|
|
|
## Weitere Infos zur Schnittstelle `TR-064`
|
|
* http://fritz.box:49000/tr64desc.xml
|
|
* https://wiki.fhem.de/wiki/FRITZBOX#TR-064
|
|
* https://avm.de/service/schnittstellen/
|