Fritz!Box per Bash-Script neustarten

Heute möchte ich dir ein nützliches Bash-Script vorstellen, das mir persönlich sehr geholfen hat. Es handelt sich um ein „Fritz!Box Restarter“-Script, mit dem ich meine Fritz!Box bei Problemen mit der Stabilität der Internetverbindung neu starten kann. Da ich selbst lange Zeit mit dieser Herausforderung zu kämpfen hatte, möchte ich meine Erfahrungen und Lösungen gerne mit dir teilen.

Um das Script nutzen zu können, benötigst du eine Fritz!Box mit FritzOS 6.0 oder höher. Die genaue Beschreibung ist in meinem Git-Repository verfügbar, dieses findest du hier: Git-Repository: scriptos/fritzbox-restart-script

Bevor du startest, musst du einige Variablen an deine individuelle Konfiguration anpassen. Du findest diese im oberen Teil des Scripts. Hier kannst du die IP-Adresse deiner Fritz!Box, deine Fritz!Box-Benutzerdaten sowie den Pfad für das Log-File festlegen. Es ist wichtig, dass du diese Informationen korrekt einträgst, damit das Script reibungslos funktioniert.

# Variablen
# Mehrere IPs durch ein Komma + Leerzeichen getrennt. Bsp: 192.168.178.1, 192.168.178.2
IPS="192.168.178.1"
FRITZ_USER="FritzBenutzer"
FRITZ_PW="FritzPasswort"
LOG_FILE="/var/log/script-logs/fritzbox-restart.log"

Das Script selbst verwendet das TR-064 Protokoll, um die Fritz!Box neu zu starten. Es nutzt die curl-Bibliothek, um eine Verbindung zur Fritz!Box herzustellen und den Neustart-Befehl zu senden. Dabei werden die eingegebenen IP-Adresse, Benutzerdaten und der Pfad für das Log-File verwendet. Das Script unterstützt auch die Verwendung mehrerer Fritz!Boxen, indem du einfach die entsprechenden IP-Adressen durch Kommas getrennt in der Variable „IPS“ einträgst.

Um das Script auszuführen, kannst du den folgenden Befehl verwenden:

bash ./fritzbox-reboot.v1.sh

Das Script startet dann den Neustartvorgang für jede angegebene Fritz!Box-IP-Adresse. Es schreibt außerdem Ereignisse und Statusmeldungen in das Log-File, sodass du den Fortschritt und eventuelle Fehler nachverfolgen kannst.

Ich für meinen Fall nutze dieses Script in einem Cronjob:

*/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.sh)

Dieser Cronjob prüft alle 30 Minuten die Verbindung ins Internet, indem versucht wird, eine Verbindung zum öffentlichen DNS-Server 1.1.1.1 herzustellen. War der Verbindungsversuch erfolgreich, wird nichts weiter unternommen. Wenn der Verbindungsversuch 3 mal nicht erfolgreich war, wird das Script ausgeführt und damit die Fritz!Box(en) neu gestartet.

Ich persönlich habe dieses Script bereits erfolgreich genutzt, um meine Fritz!Box bei Verbindungsproblemen neu zu starten. Es hat mir geholfen, die Stabilität meiner Internetverbindung wiederherzustellen und ständige Unterbrechungen zu vermeiden. Natürlich ist es wichtig zu beachten, dass das Neustarten der Fritz!Box den Internetzugang vorübergehend unterbricht. Wenn diese aber ohnehin nicht vorhanden ist, macht das eh keinen Unterschied.

alls du weitere Informationen benötigst oder Fragen zum Script hast, kannst du gerne mein Git-Repository besuchen, in dem du den vollständigen Code und weitere Details findest. Hier ist der Link dazu: Git-Repository: scriptos/fritzbox-restart-script

Ich hoffe, dass dieses Script dir genauso gut helfen wird wie mir. Wenn du weitere Fragen oder Anregungen hast, kannst du mir gerne einen Kommentar hinterlassen. Ich freue mich immer über Feedback.