Crea un script crontab con curl

Crea un script crontab con curl

Intentando configurar un cronjob para usarlo con curl. Quiere actualizar la IP en noip.com. El siguiente comando obtiene la IP de noip.com pero no la actualiza con la IP de mi servidor. Quiero decir: cuando la IP no se actualiza entonces me sale la anterior:

curl -X GET 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic $(base64 <<< $xxxxxxx:$xxxxxx)" -d "hostname=$xxxxx.ddns.net"

este comando a continuación produce un errorsh: 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'

Necesita ayuda para un guión apropiado

Respuesta1

En un sistema Linux moderno, no desea utilizar crontabtemporizadores systemd, sino .

Cree el archivo /etc/systemd/system/updateip.servicecon el siguiente contenido:

[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'

Ahora agrega un temporizador /etc/systemd/system/updateip.timercon el siguiente contenido, para que se ejecute cada 10 minutos:

[Unit]
Description=Update IP every 10 minutes

[Timer]
OnCalendar=*:0/10

Habilite el temporizador ejecutandosystemctl start updateip.timer

información relacionada