데이터 마이그레이션 할 때 rsync 명령어를 주로 사용하는데, 이때 rsync란 어떤 개념인 지 자세히 알아보자.

 

- rsync란?

  • rsync는 Remote Synchronization의 줄임말로 파일과 디렉토리를 동기화하기 위한 프로토콜이자 리눅스의 유틸리티 명령어다.
  • rsync 명령어를 이용해 로컬에 있는 파일이나 디렉토리를 원격 호스트로 보내거나 원격에 있는 파일, 디렉토리를 로컬로 복사해 올 수 있다.

- 장점

  • 원격 시스템으로부터 파일을 효율적으로 복사 및 동기화할 수 있다.
  • link, device, 파일의 소유자와 그룹권한 등 파일의 부가정보까지 복사가 가능하다.
  • 빠르다.
  • rsync는 remote-update 프로토콜을 이용해서 차이가 있는 파일만 복사한다.
  • 처음에는 모든파일 및 디렉토리를 복사 후, 이후부터는 출발지와 목적지 간의 다른부분 만을 복사하기 때문에 빠르고 효율적으로 작동한다.
  • 데이터를 압축해서 송수신하기 때문에 적은 대역폭을 사용한다.
  • 파일크기 또는 시간의 변화 등을 이용하여 동기화한다.

 

- 설치

  • 대부분의 리눅스 배포판이나 OSX에는 기본 설치가 되어 있다.
  • 하지만 일부 리눅스를 최소 설치 옵션으로 설치했다면 rsync가 포함되지 않았을 수 있다. 이 경우 아래처럼 yum이나 apt 등으로 설치해주면 된다.
$ sudo yum install rsync 
또는
$ sudo apt-get install rsync


- 사용법

$ rsync [OPTIONS] [SOURCE] [TARGET]

- 예시

# 로컬 데이터를 로컬에 복사
$ rsync -avh /home/user/data /home/new_user/backup

# 로컬의 데이터를 리모트로 복사 
$ rsync -avh /home/user/data remote_user@remotehost:/home/remote_user/backup

# ssh 포트가 다른 경우
$ rsync -avh -e "ssh -p 123" /home/user/data remote_user@remotehost:/home/remote_user/backup

# 리모트 데이터를 로컬로 가져옴
$ rsync -avh remote_user@remotehost:/home/remote_user/backup /home/user/data
  • SOURCE와 TARGET 순으로 파일의 경로를 입력하면 된다.
  • 만약 SOURCE 혹은 TARGET이 리모트에 있는 파일 경로라면, "[USER]@[HOST]:[PATH]" 형식으로 입력해주면된다.
    이때, 콜론(:)은 빼먹지 않도록 유의해야한다.

 

- 옵션값

man 페이지에서 조회한 rsync 옵션값은 아주 많은데, 그중에서도 자주 사용하는 옵션값은 아래와 같다.

 

옵션 이름설명
-v진행 상황을 상세하게 보여줌
-r지정한 디렉토리의 하위 디렉토리까지 재귀적으로 실행
-l소프트 링크 보존
-H하드 링크 보존
-p버전 속성 보존
-o소유 속성 보존(루트)
-g그룹 속성 보존
-t 타임스탬프 보존
-D디바이스 파일 보존(루트)
-z데이터 압축 전송
-b낡은 파일은 ~가 붙음
-u추가된 파일만 전송, 새 파일은 갱신하지 않음
--existing추가된 파일은 전송하지 않고 갱신된 파일만 전송
--delete서버에 없는 파일은 클라이언트에서도 삭제
-a아카이브 모드. rlptgoD를 자동 지정
-c서버와 클라이언트의 파일 크기를 세밀히 체크
--stats결과를 보고
-e ssh(rsh) 전송 암호화

 
 
 
 
 


Reference
https://hbase.tistory.com/318

https://cheershennah.tistory.com/m/131

 

'Programming > Linux' 카테고리의 다른 글

[Linux] /tmp와 /var/tmp의 차이  (2) 2023.03.11
[Linux] Nohup이란?  (0) 2023.03.10
[Linux] Crontab 이란?  (0) 2022.06.30
[Linux] at이란?  (0) 2022.06.30

+ Recent posts