Команда Curl, что я делаю неправильно?

Команда Curl, что я делаю неправильно?

Я получил:

root@dm820:~# ExecStart=/usr/bin/curl'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
-sh: --header: command not found

решение1

что я делаю не так?

ExecStart=/usr/bin/curl'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
  1. Вы определяете ExecStartпеременную и пытаетесь запустить --header. Синтаксис такой

    foo=bar some_command option1 option2
    
  2. Вы используете полный путь /usr/bin/curl. Если вы не уверены, что он правильный, и вам не нужен полный путь, вам следует положиться на свой $PATHи использовать только curl.

  3. У вас нет места после curl.

  4. Вы пытаетесь запуститься curlкак root.

  5. Вы запускаете команду (вроде случайного кода из Интернета?)Вы, видимо, не понимаетекак корень.

Исправить:

  • Напишите 100 раз: «Я не буду запускать команды, которые не понимаю, как root». :)
  • Отбросьте ExecStart=, это часть синтаксиса systemd.
  • Используйте только curl.
  • Поставьте пробел после curl.

Это будет похоже на

curl 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'

где <$xxxx:$xxx>и <hostname>по-прежнему являются заполнителями, которые необходимо изменить на что-то допустимое.

решение2

Если вы хотите запустить это из командной строки, а не из systemd, вам нужно запустить это так:

curl 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'

Связанный контент