티스토리 뷰

카테고리 없음

rsync 사용법 정리

지단로보트 2019. 9. 11. 14:36

개요

  • rsync는 원본과 대상 파일 또는 디렉토리를 동기화시켜주는 리눅스 유틸리티이다. cp와 다른 점은 원본과 대상의 관계를 정밀하게 분석, 비교하여 꼭 필요한 변경점만 동기화하여, I/O 소모를 최소화한다는 특징이 있다. rsync는 주로 로컬의 중요한 데이터를 주기적으로 원격지에 백업하는 용도로 많이 사용한다. 데몬으로 작동하기 보다는 단일 명령어로 실행되는 성격을 가진다. (데몬으로 작동하면서, 변경점을 바로 바로 반영하는 유틸리티로는 lsyncd가 존재한다.)

rsync 설치

  • CentOS에서 설치 가능한 최신 버전의 rsync 다운로드 방법은 아래와 같다.
### CentOS 6 64-bit
$ yum install https://rpmfind.net/linux/dag/redhat/el6/en/x86_64/extras/RPMS/rsync-3.1.1-1.el6.rfx.x86_64.rpm

### CentOS 7 64-bit
$ yum install https://rpmfind.net/linux/centos/7.6.1810/os/x86_64/Packages/rsync-3.1.2-4.el7.x86_64.rpm

### rsync 버전 확인
$ rsync --help
rsync  version 3.1.1  protocol version 31

rsync 사용법

$ nice -n19 ionice -c2 -n7 rsync -avn --delete --bwlimit=1024 /home/source/ /home/destination/; echo 3 > /proc/sys/vm/drop_caches
sending incremental file list
  • rsync-a 옵션은 원본의 타임스탬프와 권한 정보를 그대로 유지한채 사본으로 복사해준다. (-t 옵션만 사용할 경우, 타임스탬프 정보만 유지한다.)
  • rsync-v 옵션은 복사 중에 발생하는 로그를 상세하게 출력해준다.
  • rsync-n 옵션은 실제 복사에 앞서 예행 연습을 해준다. 실제 물리적인 복사 행위 없이 예상되는 변경점을 파악할 수 있다. 실제 복사시에는 옵션에서 제거해야 한다.
  • rsync--delete 옵션은 원본에는 존재하지 않는 파일이 대상에 있을 경우 삭제해준다.
  • rsync--bwlimit 옵션은 파일 복사에 사용되는 I/O 최대 대역폭을 지정할 수 있다. KB 단위이다. (1,024는 초당 1MB 대역폭을 의미한다.)
  • ionice를 사용하면 대상 명령의 시스템 우선순위를 낮출 수 있다. 실제 운영 환경에서 사용할 경우 기존 서비스에 대한 영향을 최소화할 수 있어 추천한다. ionice-c[1-3] 옵션은 실행할 우선순위 정책을 의미한다. 대개 2를 추천한다. (1: real time, 2: best effort, 3: idle only)
  • ionice-n[0-7] 옵션은 실행할 명령의 CPU 우선순위를 의미한다. 값이 낮을수록 우선순위가 높아진다. 7로 설정하면 우선순위가 가장 낮아진다.
  • ionice를 다시 nice로 한번 더 랩핑하면 보다 확실하게 우선순위를 조정할 수 있다. nice-n[-20-19] 옵션은 앞서와 마찬가지로 CPU 우선순위를 의미하며 낮을수록 우선순위가 높아진다. 19로 설정하면 우선순위가 가장 낮아진다.
  • 마지막으로, echo 3 > /proc/sys/vm/drop_caches를 사용하면 rsync 실행 중에 캐시된 자원을 즉시 반납하여 메모리 사용량을 한 번에 줄일 수 있다. (원래 메모리 사용량은 rsync 사용 후 오랫동안 점진적으로 내려간다.)

원격지로부터 로컬 파일 동기화하기

  • 단순히 로컬 내에서의 파일 동기화 뿐만 아니라 원격지로부터 로컬 파일을 동기화하는 것도 가능하다. [관련 링크]
$ rsync -chavzP --stats user@source_ip_address:/home/source/ /home/destination/
  • 로컬에서 원격지로 파일 동기화시 SSH Key 연동이 되어 있지 않으면, 계정 비밀번호를 물어본다. 이를 자동화하려면 원격지에 SSH Key를 아래와 같이 복사하면 된다.
# SSH Key 생성
$ ssh-keygen

# 원격지로 생성한 SSH Key의 퍼블릭 키 전송
$ ssh-copy-id -i /root/.ssh/id_rsa {원격지 IP 주소}

참고 글

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함