Comando curl ¿qué hago mal?

Comando curl ¿qué hago mal?

Yo obtengo:

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

Respuesta1

¿Qué hago mal?

ExecStart=/usr/bin/curl'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
  1. Estás definiendo ExecStartvariable e intentando ejecutarla --header. La sintaxis es como

    foo=bar some_command option1 option2
    
  2. Estás usando la ruta completa /usr/bin/curl. A menos que sepa que es correcto y necesita la ruta completa, debe confiar en su $PATHy usar solo curl.

  3. No tienes espacio después curl.

  4. Estás intentando ejecutar curlcomo root.

  5. Estás ejecutando un comando (¿como un código aleatorio de Internet?)aparentemente no entiendescomo raíz.

Arreglar:

  • Escribe 100 veces "No ejecutaré comandos que no entiendo como root". :)
  • Drop ExecStart=, es parte de la sintaxis de systemd.
  • Utilice sólo curl.
  • Pon un espacio después curl.

será como

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

donde <$xxxx:$xxx>y <hostname>siguen siendo marcadores de posición, debe cambiarlos por algo válido.

Respuesta2

Si desea ejecutar esto desde la línea de comando y no desde systemd, debe ejecutarlo así:

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

información relacionada