AWS 서버에서 프로젝트를 가져오려고 하는데 어떤 이유로 rsync가 작동하지 않는지 알 수 없습니다. 이 명령을 실행하려고 하면:
vinicius@Inspiron-5537:~/Desktop/PHP$ rsync --protect-args -aP -e "ssh [email protected] -i ~/Desktop/Projeto.pem" "[email protected]:/var/www/projeto/" .
다음 오류가 발생합니다.
bash: 84.26.56.23: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: remote command not found (code 127) at io.c(226) [Receiver=3.1.1]
그런데 이상한 점은 SSH 서버를 사용하면
ssh [email protected] -i ~/Desktop/Projeto.pem
로그인 잘 됩니다! 무슨 일인지 말해 줄 사람 있나요? 서버에서 파일을 가져오려면 어떻게 해야 합니까? 이것이 그것과 관련이 있는지는 모르겠지만 /var/www/projeto/
루트가 소유하지만 모든 사용자는 최소한 읽기 액세스 권한을 갖습니다. 내 클라이언트는 Ubuntu 16.04이고 내 서버는 Ubuntu 14.04입니다.
답변1
사용
rsync --protect-args -aP -e "ssh -i ~/Desktop/Projeto.pem" "[email protected]:/var/www/projeto/" .
사람 동기화 상태
-e, --rsh=COMMAND는 사용할 원격 쉘을 지정합니다.
그리고
-e, --rsh=COMMAND 이 옵션을 사용하면 rsync의 로컬 복사본과 원격 복사본 간의 통신을 위한 대체 원격 쉘 프로그램을 선택할 수 있습니다. 일반적으로 rsync는 기본적으로 ssh를 사용하도록 구성되어 있지만 로컬 네트워크에서는 rsh를 사용하는 것이 더 나을 수도 있습니다.
이 옵션을 [user@]host::module/path와 함께 사용하면 원격 쉘 COMMAND가 원격 호스트에서 rsync 데몬을 실행하는 데 사용되며 모든 데이터는 연결이 아닌 해당 원격 쉘 연결을 통해 전송됩니다. 원격 호스트에 실행 중인 rsync 데몬에 대한 직접 소켓 연결. 원격 셸 연결과 함께 위의 RSYNC-DAEMON 기능 rq 사용 섹션을 참조하세요.
COMMAND가 rsync에 단일 인수로 제공되는 경우 COMMAND에 명령줄 인수가 허용됩니다. 명령과 인수를 구분하려면 탭이나 기타 공백이 아닌 공백을 사용해야 하며 작은따옴표 및/또는 큰따옴표를 사용하여 인수에서 공백을 보존할 수 있습니다(백슬래시는 제외). 작은 따옴표로 묶인 문자열 내에서 작은 따옴표를 두 번 사용하면 작은 따옴표가 됩니다. 큰 따옴표의 경우에도 마찬가지입니다(그러나 쉘이 구문 분석하는 따옴표와 rsync가 구문 분석하는 따옴표에 주의해야 함). 몇 가지 예:
CW -e 'ssh -p 2234'
CW -e 'ssh -o "ProxyCommand nohup sshfirewall nc -w1 %h %p"' (ssh 사용자는 .ssh/config 파일에서 사이트별 연결 옵션을 사용자 정의할 수도 있습니다.)
-e와 동일한 범위의 값을 허용하는 RSYNC_RSH 환경 변수를 사용하여 원격 셸을 선택할 수도 있습니다.
이 옵션의 영향을 받는 --blocking-io 옵션도 참조하세요.
그래서 여분[이메일 보호됨]무엇이 그것을 깨뜨 렸습니까?