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루트로 실행하려고 합니다 .

  5. 명령을 실행하고 있습니다(예: 인터넷의 임의 코드?)당신은 분명히 이해하지 못하는 것 같습니다루트로.

고치다:

  • "루트로서 이해하지 못하는 명령을 실행하지 않겠습니다"라고 100번 작성하세요. :)
  • Drop ExecStart=, 이는 시스템 구문의 일부입니다.
  • 그냥 사용하세요 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'

관련 정보