fritzbox-restart-script/fritzbox-restart.v1.sh

43 lines
1.7 KiB
Bash

#!/bin/bash
# Script Name: fritzbox-restart.v1.sh
# Beschreibung: startet die Fritzbox neu
# Dieses Bash-Script nutzt das Protokoll TR-064
# Skript funktioniert für alle Fritzboxen ab FritzOS 6.0
# Aufruf: 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)
# Aufruf 2 bash ./fritzbox-reboot.v1.sh
# Autor: Patrick Asmus
# Web: https://www.media-techport.de
# Git-Reposit.: https://git.media-techport.de/scriptos/fritzbox-restart-script
# Version: 1.0.3
# Datum: 21.01.2024
# Modifikation: Doku
#####################################################
# 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"
# Funktion zum Schreiben von Logs
log() {
timestamp=$(date +"%Y-%m-%d %T")
echo "[${timestamp}] $1" >> "$LOG_FILE"
}
# Ausführung
location="/upnp/control/deviceconfig"
uri="urn:dslforum-org:service:DeviceConfig:1"
action='Reboot'
log "Script gestartet."
for IP in ${IPS}; do
log "Starte Neustart für Fritzbox mit IP: $IP"
curl -k -m 5 --anyauth -u "$FRITZ_USER:$FRITZ_PW" "http://$IP:49000$location" -H 'Content-Type: text/xml; charset="utf-8"' -H "SoapAction:$uri#$action" -d "<?xml version='1.0' encoding='utf-8'?><s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><u:$action xmlns:u='$uri'></u:$action></s:Body></s:Envelope>" -s > /dev/null
log "Neustart für Fritzbox mit IP: $IP abgeschlossen."
done
log "Script beendet."