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

2 ответа

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

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 как корень.

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

Чинить:

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

Это будет как

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

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

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

curl 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
Другие вопросы по тегам