Curl-Befehl, was mache ich falsch?

Curl-Befehl, was mache ich falsch?

Ich bekomme:

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

Antwort1

was mache ich falsch?

ExecStart=/usr/bin/curl'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
  1. Sie definieren ExecStarteine Variable und versuchen, sie auszuführen --header. Die Syntax lautet wie folgt:

    foo=bar some_command option1 option2
    
  2. Sie verwenden den vollständigen Pfad /usr/bin/curl. Sofern Sie nicht wissen, dass er richtig ist und Sie den vollständigen Pfad benötigen, sollten Sie sich auf Ihren verlassen $PATHund nur verwenden curl.

  3. Danach ist kein Platz mehr frei curl.

  4. Sie versuchen, curlals Root zu arbeiten.

  5. Sie führen einen Befehl aus (wie etwa zufälligen Code aus dem Internet?)du verstehst anscheinend nichtals root.

Reparieren:

  • Schreiben Sie 100 Mal „Ich werde keine Befehle ausführen, die ich nicht als Root verstehe“. :)
  • Drop ExecStart=, es ist ein Teil der systemd-Syntax.
  • Verwenden Sie einfach curl.
  • Setzen Sie nach ein Leerzeichen curl.

Es wird sein wie

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

wobei <$xxxx:$xxx>und <hostname>immer noch Platzhalter sind, die Sie in etwas Gültiges ändern müssen.

Antwort2

Wenn Sie dies über die Befehlszeile und nicht über ausführen möchten systemd, müssen Sie es folgendermaßen ausführen:

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

verwandte Informationen