문제

Mac A와 Mac B에서 데이터를 저장하는 서버가 있습니다.

rsync를 사용하여 Mac간에 파일을 업데이트합니다.

다음 코드를 실패로 실행합니다

#!/bin/zsh

#    to copy files from my server to my folder
rsync -Pav $Masi:~/private/ ~/Dropbox/Courses/math/

#    to  copy files from my folder to my server
rsync -Pav ~/Dropbox/Courses/math $Masi:~/private/

다음 오류 메시지가 표시됩니다

ssh: connect to host  port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: unexplained error (code 255) at io.c(600) [receiver=3.0.5]
ssh: connect to host  port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.5]

SSH 키가있어 문제없이 SCP를 사용할 수 있으므로 연결이 작동해야합니다.

내 서버와 내 Mac 중 하나 사이에 rsync를 어떻게 사용할 수 있습니까?

도움이 되었습니까?

해결책

나는 이것을 많이했었다. 몇 가지 제안을 테스트했습니다.

  1. 전체 사용자@호스트 패턴을 철자하십시오
  2. SSH 연결 실행 rsync를 먼저 실행하십시오. 먼저 지문을 승인해야 할 수도 있습니다.
  3. 확장 된 속성을 보호하기 위해 깃발을 전달하지 않는 것 같습니다. 이것은 OS X에서 파일이 깨진 파일을 얻을 수 있습니다. 자원 포크가 필요하지 않으면 괜찮지 만 대부분은 필요합니다.

내 테스트 케이스 :

$ rsync -Pav ~/Desktop/ me@remote.example.com:~/rsyc-test

이 경우 ~/데스크탑 내의 모든 파일은 내 집의 원격 호스트에 복사되었습니다. 디렉토리 'rsyc-test'가 존재하지 않았기 때문에 저를 위해 만들어졌습니다. 데스크탑에 .app을 가지고 있었는데 놀랍게도 작동했습니다. 일부 .webloc 파일조차도 그것을 신뢰하지는 않지만 작동하고 작동하는 것처럼 보입니다.

-e 플래그를 추가하는 것이 좋습니다

  -E, --extended-attributes
         Apple specific option  to  copy  extended  attributes,  resource
         forks,  and  ACLs.   Requires at least Mac OS X 10.4 or suitably
         patched rsync.

나는 새로운 테스트를 실행했고, 계선 북마크를 데스크탑으로 옮겼습니다. 그들이 SANS Resource Forks를 복사하면 사실을 알고 있습니다. -e없이 실행하는 대 -e와 함께 실행되면 xfered 데이터에는 152 바이트의 차이가 있습니다. 원격 시스템의 첫 번째 파일은 작동하지 않았으며 두 번째 전송 파일이 작동했습니다.

나는 당신의 예에서 당신의 경로 중 하나가 ~/dropbox이라는 것을 알 수는 없지만, 앱인 Dropbox는 현재 Resource Forks를 전혀 지원하지 않기 때문에 이것은 중요하지 않을 수 있습니다. 그러나 앞으로 계획이 있다고 들었습니다.

당신은 또한 -벨트 깃발을 보내지 않습니다. 최종 목표가 데이터의 거울이라면, 당신의 최종 목표가 지속적으로 성장하는 백업이라면, 소스에 있던 모든 것을 유지하고 부족한 것은 그것을 얻지 못합니다. -델리트가 좋습니다.

기타 노트 :
바보 같은 .ds_store 파일을 제외 할 수 있습니다 --exclude '.ds_store'

진정한 거울이되도록 RSYNC를 설정할 수도 있으므로 다른 명령을 실행할 필요가 없으며 자세한 내용은 Man 페이지를 참조하십시오.

내 노트북의 데스크탑을 원격 기계로 밀어 붙이는 마지막 작업 명령 :

$ rsync -PEav --delete --exclude '.DS_Store' ~/Desktop/ me@remote.example.com:~/rsycn-test

다른 팁

"$ masi"를 확인하십시오. 그게 당신이 도달하려는 호스트 이름인가요?

다음 명령을 시도하여 디버깅하십시오.

rsync -e 'ssh -v' -Pav $Masi:~/private/ ~/Dropbox/Courses/math/

그만큼 연결이 거부되었습니다 일반적으로 리모컨 (예 : 방화벽)에 연결 문제가있을 때 발생합니다.

귀하의 경우 문제는 그 것입니다 $Masi 변수는 비어 있습니다. 가변적이지 않은 경우 사용하십시오 Masi.

이 오류에 따라 :

SSH : connect to host port 22: Connection refused

이후 위의 이중 공간을 주목하십시오 host 단어.

그만큼 호스트에 연결하십시오 메시지는 어떤 호스트에 어떤 호스트를 말하지 않으므로, 빈 호스트에 연결하려고합니다. 따라서 호스트 이름의 오타처럼 들립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top