Curl 命令我犯了什麼錯誤?

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

答案1

我做錯了什麼?

ExecStart=/usr/bin/curl'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
  1. 您正在定義ExecStart變數並嘗試運行--header.語法就像

    foo=bar some_command option1 option2
    
  2. 您正在使用完整路徑/usr/bin/curl。除非您知道它是正確的並且需要完整路徑,否則您應該依賴您的$PATH並僅使用curl.

  3. 之後就沒有空間了curl

  4. 您正在嘗試curl以 root 身分執行。

  5. 您正在運行命令(例如來自互聯網的隨機代碼?)你顯然不明白作為根用戶

修理:

  • 寫 100 遍「我不會以 root 身分執行我不理解的命令」。 :)
  • Drop ExecStart=,它是 systemd 語法的一部分。
  • 僅使用curl.
  • 後面加一個空格curl

它會像

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

其中<$xxxx:$xxx><hostname>仍然是佔位符,您需要將其更改為有效的內容。

答案2

如果您想從命令列而不是從 運行它systemd,則必須像這樣運行它:

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

相關內容