Strato DynDNS-Update mit Bash

Der Titel kommt dir bekannt vor? Richtig, denn ich habe bereits einen Blog-Post hierfür verfasst, wo ich ein DynDNS-Update mit PowerShell realisiert habe. Wer aber seine Domains lieber via Bash auf einem linuxbasierten OS aktualisieren möchte, der kann statt PowerShell einfach Bash verwenden!

Der nachfolgende Code nutzt den Service von ipify.org um die aktuelle Internet-IP-Adresse zu ermitteln. Diese wird in eine Datei im Home-Verzeichnis des Benutzers gespeichert. Ist die abgerufene Adresse im Vergleich zur zwischengespeicherten Adresse unterschiedlich, wird mittels curl das entsprechende DynDNS-Update durchgeführt. Wichtig ist hierbei übrigens, das die Variablen HOST und PASS korrekt zugewiesen worden sind (Zeile 2 und 3).

#!/bin/bash
HOST=domain.de
PASS=mySecretPassword

CUR_IP=$(curl -s https://api.ipify.org)
if [ "$(<~/.oldipaddress)" != "$CUR_IP" ]
then
        echo $CUR_IP > ~/.oldipaddress
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] $(curl --silent --show-error --insecure --user $HOST:$PASS https://dyndns.strato.com/nic/update?hostname=$HOST)" >> ~/stratologs.txt
else
        echo "[$(date '+%Y-%m-%d %H:%M:%S')] No change." >> ~/stratologs.txt
fi

Ähnlich wie in der PowerShell-Variante, wird auch hier das Resultat von curl in deine Textdatei geschrieben, um für eventuell spätere Verwendung ein Logfile parat zu haben. Um die DynDNS-Updates nun zu automatisieren, kann man ein Cronjob anlegen, ein systemd.timer oder was auch immer für eine Art schon Scheduler man bevorzugt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert