Ich versuche, einen Cronjob für die Verwendung mit curl einzurichten. Möchte die IP auf noip.com aktualisieren. Der folgende Befehl ruft die IP von noip.com ab, aktualisiert sie aber nicht mit der IP meines Servers. Ich meine: Wenn die IP nicht aktualisiert wird, erhalte ich die alte:
curl -X GET 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic $(base64 <<< $xxxxxxx:$xxxxxx)" -d "hostname=$xxxxx.ddns.net"
dieser Befehl unten verursacht Fehlersh: GET: command not found
ExecStart=/usr/bin/curl-X GET 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxxx:$xxxxx>" -d 'hostname=<hostname>.xxxxxx.ddns.net'
Brauche Hilfe für ein passendes Script
Antwort1
Auf einem modernen Linux-System möchten Sie keine crontab
, sondern systemd-Timer verwenden.
Erstellen Sie die Datei /etc/systemd/system/updateip.service
mit folgendem Inhalt:
[Unit]
Description=Update IP
[Service]
Type=oneshot
ExecStart=/usr/bin/curl -X GET 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxxx:$xxxxx>" -d 'hostname=<hostname>.xxxxxx.ddns.net'
/etc/systemd/system/updateip.timer
Nun fügen Sie einen Timer mit folgendem Inhalt ein , der alle 10 Minuten läuft:
[Unit]
Description=Update IP every 10 minutes
[Timer]
OnCalendar=*:0/10
Aktivieren Sie den Timer durch Ausführensystemctl start updateip.timer