Пытаюсь настроить cronjob для использования с curl. Хочу обновить IP на noip.com. Команда ниже получает IP с noip.com, но не обновляет его с IP моего сервера. Я имею в виду: когда IP не обновляется, я получаю старый:
curl -X GET 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic $(base64 <<< $xxxxxxx:$xxxxxx)" -d "hostname=$xxxxx.ddns.net"
эта команда ниже выдает ошибкуsh: 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'
Нужна помощь для соответствующего сценария
решение1
В современной системе Linux вы не хотите использовать crontab
таймеры systemd.
Создайте файл /etc/systemd/system/updateip.service
со следующим содержимым:
[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
со следующим содержимым, который будет запускаться каждые 10 минут:
[Unit]
Description=Update IP every 10 minutes
[Timer]
OnCalendar=*:0/10
Включите таймер, запустивsystemctl start updateip.timer