나는 얻다:
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'
변수를 정의
ExecStart
하고--header
. 구문은 다음과 같습니다foo=bar some_command option1 option2
전체 경로를 사용하고 있습니다
/usr/bin/curl
. 그것이 옳고 전체 경로가 필요하다는 것을 알지 않는 한, 귀하의$PATH
및 사용 에 의존해야 합니다curl
.이후에는 공간이 없습니다
curl
.curl
루트로 실행하려고 합니다 .명령을 실행하고 있습니다(예: 인터넷의 임의 코드?)당신은 분명히 이해하지 못하는 것 같습니다루트로.
고치다:
- "루트로서 이해하지 못하는 명령을 실행하지 않겠습니다"라고 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'