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'
Вы определяете
ExecStartпеременная и пытается запустить--header, Синтаксис похож наfoo=bar some_command option1 option2Вы используете полный путь
/usr/bin/curl, Если вы не знаете, что это правильно, и вам нужен полный путь, вы должны полагаться на$PATHи использовать толькоcurl,У вас нет места после
curl,Ты пытаешься бежать
curlкак корень.Вы запускаете команду (например, случайный код из Интернета?) , Которую вы явно не понимаете как 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'