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. 您正在运行一个命令(比如来自互联网的随机代码?)你显然不明白以 root 身份

修理:

  • 写 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'

相关内容