본문 바로가기
카테고리 없음

rsync 사용법 (rcp를 대체하자)

by 룰루리랄라리 2022. 9. 30.

백업 시 rcp를 사용하고 있다.
하지만 수정된 내용만 전송을 하여 빠르고 안정성 있게 진행을 하고 싶다.

rsync를 사용해보자!

rsync 명령어

Rsync는 파일 복사 도구로, 셸을 통해 다른 호스트와 로컬로 복사하거나 원격 rsync 데몬에서 복사할 수 있다.

특징

  • remote-update 프로토콜을 이용하여 원본 파일과 전송할 파일이 다를 경우에만 파일 복사를 진행한다.
  • 데이터를 압축하여 송/수신하기 때문에 더 적은 대역폭을 사용한다.

사용법

rsync :options /source /destination

주요 옵션

  • -v : 복사 과정 상세히 보기
  • -progress : 파일 전송 진행 내용 보기
  • -z : 압축해서 파일 복사 하기
  • -h : 읽기 쉬운 형태로 결과물 보기
  • -r : 디렉토리 복사하기
  • -a : archive 모드로, 권한과 같은 속성(timestamp, symlink)을 똑같이 복사하기
  • -p : 파일과 디렉터리들 권한을 똑같이 복사하기
  • -t : 수정시간 복사
  • -u : 업데이트된 파일만 복사하기
  • -d : 소스 경로에 없는 파일이 목적지 위치에 있을 경우 목적지에 있을 파일 삭제
  • --files-from [FILE]: FILE에서 소스 파일 이름 목록 읽기

명령어 사용해보기

rsync -rhv /source /destination

rsync -urhv /source /dest
#-u 옵션을 사용하여 업데이트된 파일만 복사한다

whoami.js만 변경하였기 때문에 해당 파일만 전송이 이뤄졌다.
실제로도 whoami.js파일만 업데이트 되었다.

find와 rsync 같이 사용하기

rsync을 사용하면서 특정 조건을 통해 찾은 내용만 전송을 하고 싶은 경우가 있다. 이 때는 rsync의 --files-from 옵션을 사용하면 된다.

 

나는 수정 날짜가 1일인 파일들을 전송하고 싶다.

find ./ -type f -mtime -1 -printf '%P\n'

 

rsync와 find를 결합하여 쓰면 아래의 명령어가 된다.

rsync -rhv --files-from=<(find /source -type f -mtime -1 -printf '%P\n') /source /destination

댓글