82 lines
3.5 KiB
Markdown
82 lines
3.5 KiB
Markdown
<p align="center">
|
|
<a href="https://techniverse.net">
|
|
<img src="https://assets.techniverse.net/f1/git/graphics/repo-techniverse-logo.png" alt="Techniverse Community" height="70" />
|
|
</a>
|
|
</p>
|
|
|
|
<h1 align="center">Fritz!Box-Neustart-Script</h1>
|
|
|
|
<h4 align="center">
|
|
🔄 Automatischer Neustart deiner FRITZ!Box per Bash-Skript
|
|
</h4>
|
|
|
|
<h6 align="center">
|
|
<a href="https://www.cleveradmin.de">🏰 Website</a>
|
|
·
|
|
<a href="https://techniverse.net">📰 Community</a>
|
|
·
|
|
<a href="https://social.techniverse.net/@donnerwolke">🐘 Mastodon</a>
|
|
·
|
|
<a href="https://matrix.to/#/#support:techniverse.net">💬 Support</a>
|
|
</h6>
|
|
<br><br>
|
|
|
|
|
|

|
|
|
|
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-restart.v1.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-restart.v1.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-restart.v1.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/
|
|
|
|
<br><br>
|
|
<p align="center">
|
|
<img src="https://assets.techniverse.net/f1/git/graphics/gray0-catonline.svg" alt="">
|
|
</p>
|
|
|
|
<p align="center">
|
|
<sub>
|
|
© Patrick Asmus · Techniverse Network · <a href="./LICENSE">Lizenz</a>
|
|
</sub>
|
|
</p> |