rsync는 두 대의 컴퓨터의 특정 경로에 있는 파일들을 동기화시켜주는 프로그램이다. rsync를 이용하면 데이터 백업을 쉽게 할 수 있다. rsync를 이용하는 방법을 살펴 보자.
rsync 의 기본 사용법은 다음과 같다.
rsync [OPTIONS] [source] [dest]
source의 내용을 dest로 복사를 해준다. 사용할 수 있는 OPTION 이 매우 많은데, 간단하게는 다음과 같이 할 수 있다.
rsync -avz [source] [dest]
즉, archive mode 로 복사를 하며(a), 데이터를 압축해서 복사를 하고(z), 복사되는 파일을 출력해 주는 옵션(v). rsync는 파일의 변경 여부를 판단할 수 있는 매우 많은 방법을 제공하는데, 기본적으로는 파일의 마지막 수정 날짜와 파일 크기를 이용해 파일이 변경되었는지를 판단하는 것이다. a option은 파일 권한, 파일 소유자 등을 그대로 유지시키는 옵션이다. [source]와 [dest]를 서로 다른 컴퓨터로 할 수 있는데, 이 때 네트웍을 통해서 복사를 해야 하므로 압축을 해서 전송하면 좋은 경우가 많기 때문에 z 옵션을 사용하곤 한다.
[source]와 [dest]에는 경로를 지정하면 된다. 다음과 같은 경우를 보자.
rsync -avz computerA.com:~/backup computerB.com:~/backup
로 하면 computerA의 backup 폴더가 통째로 computerB의 backup 폴더로 복사가 된다. 이 때, computerB의 backup 폴더가 없으면 새로 생기고, 만약 있으면 변경된 파일만 computerA에서 computerB로 복사가 진행된다. a option에는 하위 디렉토리까지 순환하면서 복사시키는 옵션이 포함되어 있기 때문에 하위 경로가 모두 복사가 된다. 만약 경로명에 슬래쉬(/)를 추가하면 그 경로 밑의 파일/디렉토리가 복사가 된다. 즉,
rsync -avz computerA.com:~/backup/ computerB.com:~/sync
위처럼 하면 computerA의 backup 경로 밑의 파일과 폴더들이 sync의 하위로 복사가 된다. computerB의 sync 경로에는 backup 이란 경로가 만들어지지는 않는다.
rsync는 매우 다양한 옵션을 제공한다. 특정 크기 이상의 파일은 전송에서 제외하거나, 특정 이름의 파일은 전송에서 제외하거나, 파일의 변경 여부를 파일 크기로만 판단하거나 등등등. 내가 직접 사용했던 경우들을 예로 살펴 보면 다음과 같다.
7 rsync -av --progress -h [address]:/disk1/Exprofile/ . --include '*/' --include 'filelist.txt' --exclude '*'
9 rsync -av --progress -h [address]:~/Research/Exprofile/ . --include '*/' --include 'filelist.txt' --exclude '*'
10 rsync -av --progress -h [address]:~/Exprofile/ . --include '*/' --include 'filelist.txt' --exclude '*'
118 rsync -av --progress -h /disk1/ [address]:/disk1/ --exclude=only_nomadism --exclude=PrognosisMeasure
119 rsync -av --progress -h /disk2/ [address]:/disk2/ --exclude=only_nomadism
464 rsync -avh --progress /disk3/ [address]:/disk3/ --exclude=only_nomadism
963 rsync -avzh --progress merged_matrix [address]:~
590 rsync -avz --progress -h [address]:/disk3/GEO_Human/group_config/* . --exclude=merged_matrix --exclude=merged_matrix2
594 rsync -avzh --progress -c attribute [address]:/disk3/GEO_Human/group_config/
597 rsync -avzh --progress -c config [address]:/disk3/GEO_Human/group_config/
598 rsync -avzh --progress -c attribute [address]:/disk3/GEO_Human/group_config/
'컴퓨터 > 리눅스' 카테고리의 다른 글
SELinux가 켜진 상황에서 cgi 실행시키기 (6) | 2018.11.17 |
---|---|
리눅스에서 새 HDD를 달고 mount 하기 (0) | 2015.11.12 |
삼바 접속이 안될 때 확인할 점들 (0) | 2013.05.09 |
vi 초기 환경 설정 파일 (0) | 2013.01.15 |
ar : object file 을 하나로 묶기 (0) | 2011.06.24 |