Crie um script crontab com curl

Crie um script crontab com curl

Tentando definir um cronjob para usar com curl. Deseja atualizar o IP em noip.com. O comando abaixo obtém o IP de noip.com, mas não o atualiza com o ip dos meus servidores. Quer dizer: quando o IP não é atualizado eu pego o antigo:

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

esse comando abaixo produz errosh: 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'

Precisa de ajuda para um script apropriado

Responder1

Em um sistema Linux moderno, você não deseja usar crontab, mas sim temporizadores do systemd.

Crie o arquivo /etc/systemd/system/updateip.servicecom o seguinte conteúdo:

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

Agora você adiciona um cronômetro /etc/systemd/system/updateip.timercom o seguinte conteúdo, para ser executado a cada 10 minutos:

[Unit]
Description=Update IP every 10 minutes

[Timer]
OnCalendar=*:0/10

Habilite o cronômetro executandosystemctl start updateip.timer

informação relacionada