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.service
com 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.timer
com 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