rsync를 사용하여 원격 서버에서 파일 동기화

rsync를 사용하여 원격 서버에서 파일 동기화

rsync에 관해 질문이 있습니다. 두 대의 서버가 있습니다. 서버 1에서 rsync 명령을 실행하여 서버 2의 모든 데이터/파일을 내 서버에 동기화하고 싶습니다. 서버 2에 /var/www/html/hello/* 폴더가 있다고 가정합니다. 모든 파일은 서버 2에서 서버 1로의 권한과 동기화되어야 하지만 명령은 서버 1에서 실행되어야 합니다. rsync를 사용하여 이 작업을 어떻게 수행합니까?

답변1

rsync -ai user2@server2:/var/www/html/hello/ local/directory/hello

SSH를 사용하여 server2사용자로 연결합니다 user2. 이 사용자는 복사될 모든 파일과 디렉터리에 대한 액세스 권한이 있어야 합니다. 디렉터리의 내용이 로컬 컴퓨터에 /var/www/html/hello/복사됩니다 .local/directory/hello

/후행 소스 디렉터리 경로를 기록해 두십시오. 이것이 없으면 hello대상 폴더에서 호출되는 디렉터리 에 파일과 디렉터리를 넣게 됩니다 .

추가된 경우 --delete소스 측에서 사용할 수 없는 대상 디렉터리의 로컬 파일도 삭제해야 합니다.

-i옵션은 전송 중인 항목의 세부 목록을 엽니다. -v대신 에 사용하는 것을 선호하는 사람들도 있습니다 -i. 이 -a옵션은 가능한 한 많은 권한과 기타 메타데이터를 보존하고 하위 디렉터리에 파일을 반복적으로 복사할 수 있는 옵션입니다.

답변2

rsync는 간단한 복사 프로그램처럼 작동합니다. 따라서 원격에서 동기화하는 것은 다음과 같습니다(리소스나 권한과 같은 추가 옵션 없이...).

rsync remoteuser@remoteserver:/var/www/html/hello/* /to/local/folder/

그러면 원격 파일(폴더가 아님)이 로컬 폴더에 복사됩니다.

옵션 사용-avz백업 보관(권한 등 포함):

rsync -avz remoteSource localDestination

더 많은 옵션을 보려면 매뉴얼 페이지를 참조하세요...

편집 1:

*소스 폴더에서 tail을 사용하는 것에 대한 kusalananda의 첫 번째 의견을 고려하십시오.

관련 정보