원격 SSH 명령은 "해당 파일 또는 디렉터리가 없습니다."라는 오류와 함께 셸 스크립트에서만 실패합니다.

원격 SSH 명령은 "해당 파일 또는 디렉터리가 없습니다."라는 오류와 함께 셸 스크립트에서만 실패합니다.

ssh를 사용하여 원격 시스템에서 스크립트를 실행하려고 합니다. 터미널에서 명령을 실행하면 정상적으로 실행되지만 명령을 쉘 스크립트에 포함하면 오류가 반환됩니다.

명령 1:

cmd="ssh root@IP \"python /pathtoscript\""
`$cmd` > log.log

위 명령에 대해 스택 교환에서 다음 제안을 시도했습니다.

 cmd="ssh root@IP \"bash -c 'python /pathtoscript'"
 cmd="ssh root@IP '/user/bin/python /pathtoscript'"

명령 2:

ssh root@IP "ls -1v /path"

참고: 이러한 명령은 모두 터미널에서 실행됩니다.

편집하다:

터미널에서 명령을 실행하면 정상적으로 실행되고 출력이 표시됩니다. 이제 동일한 명령을 스크립트(.sh)에 추가하면 다음 오류가 표시됩니다.

bash: ssh root@IP 'python /pathtoscript' : No such file or directory

답변1

글쎄요, 저는 전문가는 아니지만 이것이 도움이 될 수 있습니다.

ssh 명령을 사용하면 언급한 대로 실제로 다른 시스템 "root@IP"를 입력하게 됩니다.

다른 컴퓨터에 있을 때 거기에서 로컬 파일을 실행하는 방법, 먼저 파일을 그곳으로 보내야 합니다. 그런 다음 그곳에서만 실행할 수 있습니다.

이제 이것을 시도해 보세요

#scp file_you_need_to_send username@RemoteHost : 대상 시스템의 대상 위치 그러면 스크립트가 대상 시스템에 복사됩니다.

#ssh 사용자 이름@remotehost대상 시스템 입력

그런 다음 해당 스크립트를 실행하십시오.

:피

답변2

관련 정보