Попытка установить 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 ответ1

0

В современной системе 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .