재동기화 복사 실패("해당 파일이나 디렉터리가 없습니다")

재동기화 복사 실패("해당 파일이나 디렉터리가 없습니다")

한 서버에서 다른 서버로 파일을 복사하려고 하기 때문에 rsync를 사용하는 방법을 배우기 시작했습니다. 다음 명령을 사용하고 있습니다.

rsync -avzP [email protected]:/public_html/abc/ /www/abc

다른 서버의 비밀번호를 입력하면 다음 메시지가 나타납니다.

stdin: is not a tty 
receiving incremental file list 
rsync: change_dir "/public_html/abc" failed: No such file or directory (2) 
sent 8 bytes 
received 101 bytes  8.72 bytes/sec total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1655) [Receiver=3.1.1]

그러나 abc 디렉토리가 존재하므로 찾아볼 수 있습니다. 이름에 공백이 없습니다.

이것이 원인이 될 수 있는 어떤 아이디어가 있습니까?

답변1

이 오류는 /public_html/abc원격 시스템에 디렉터리가 없기 때문에 발생합니다.

~에 따르면논평, 소스 디렉토리는 실제로 경로가 아닌 사용자의 홈 디렉토리에 있습니다 /public_html.

그래서:

rsync -avzP [email protected]:public_html/abc/ /www/abc

여기서는 public_html/abc파일 시스템의 루트 대신 사용자의 홈 디렉터리에 액세스합니다.


경고는 쉘의 대화형 쉘 시작 파일이 원격 호스트( 사용 중인 경우 파일 )에서 호출되고 그 안에서 터미널이 필요한 작업을 수행하고 있다는 stdin: is not a tty사실에서 비롯됩니다 .~/.bashrcbash

원격 시스템에서 셸 시작 파일을 편집하고 상단 근처에 다음을 삽입할 수 있습니다.

[ ! -t 0 ] && return

~/.bashrc예를 들어 표준 입력 스트림이 터미널에 연결되지 않은 모든 셸 세션에 대한 실행이 중지됩니다.

답변2

예를 들어 연결 세부 정보를 추가해야 합니다. SSH에서 사용합니다 --rsh=ssh.

노력하다:

rsync -avzP --rsh=ssh [email protected]:/public_html/abc/ /www/abc

경로가 올바른지 확인하세요. 다음 경로는 절대 경로입니까, 상대 경로입니까? /public_html/abc/, /www/abc?

답변3

제거된 Docker 이미지를 사용할 때 SSH가 항상 설치되는 것은 아니며 다음 오류도 발생합니다.

apt-get install openssh-client

답변4

먼저 SSH 사용자에게 폴더에 쓸 수 있는 권한이 있는지 확인하세요.

/www/abc 

다음 명령을 실행하십시오.

rsync -avzP -e ssh /www/abc user@destinationFolderPath

노트

  • -v "verbose"(-vv는 더 자세한 정보를 제공합니다)
  • -e "ssh options" - ssh를 원격 쉘로 지정합니다.
  • -a - "보관 모드" - 권한(소유자, 그룹), 시간, 심볼릭 링크 및 장치를 보존합니다.
  • -z 전송 중 파일 데이터 압축
  • -P는 전송 중 진행 상황을 표시합니다.

CMIIW

관련 정보