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의 첫 번째 의견을 고려하십시오.