Erstellen Sie ein Crontab-Skript mit curl

Erstellen Sie ein Crontab-Skript mit curl

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.servicemit 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.timerNun 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

verwandte Informationen