Eu recebo:
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
Responder1
o que eu faço de errado?
ExecStart=/usr/bin/curl'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
Você está definindo
ExecStart
variável e tentando executar--header
. A sintaxe é comofoo=bar some_command option1 option2
Você está usando o caminho completo
/usr/bin/curl
. A menos que você saiba que está certo e precise do caminho completo, você deve confiar em seu$PATH
e usar apenascurl
.Você não tem espaço depois
curl
.Você está tentando executar
curl
como root.Você está executando um comando (como um código aleatório da Internet?)você aparentemente não entendecomo raiz.
Consertar:
- Escreva 100 vezes "Não executarei comandos que não entendo como root". :)
- Drop
ExecStart=
, faz parte da sintaxe do systemd. - Use apenas
curl
. - Coloque um espaço depois
curl
.
Será como
curl 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
onde <$xxxx:$xxx>
e <hostname>
ainda são espaços reservados que você precisa alterar para algo válido.
Responder2
Se você quiser executar isso na linha de comando e não no systemd
, você deve executá-lo assim:
curl 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'