Comando Curl, o que estou fazendo de errado?

Comando Curl, o que estou fazendo de errado?

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'
  1. Você está definindo ExecStartvariável e tentando executar --header. A sintaxe é como

    foo=bar some_command option1 option2
    
  2. 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 $PATHe usar apenas curl.

  3. Você não tem espaço depois curl.

  4. Você está tentando executar curlcomo root.

  5. 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'

informação relacionada