rsync는 원격에 있는 파일과 디렉토리를 복사하고 동기화 하기 위한 프로토콜로 주로 백업을 하기 위한 용도로 사용됩니다.
rsync로 백업 할 파일의 크기와 수정 시간을 이전에 백업한 파일과 비교하여 변경사항을 체크한 뒤 변경이 되었다면 다시 백업을 하게 됩니다.
하지만 파일의 크기와 수정 시간만을 가지고 비교하는 것이 완벽하지 않다면, —checksum 옵션을 사용하여 비교할 수 있습니다. —checksum 옵션은 크기와 수정 시간을 비교하는 것 보다 느리고 더 많은 자원을 이용하지만 좀 더 안전합니다.
또한 rsync는 효율적으로 파일을 동기화 시킵니다. 수정된 파일 전체를 복사하는 것이 아니라 서로 다른 부분만 동기화 시킵니다.(Rolling Hash 알고리즘 사용)
- Remote Sync의 약자로 file & directory 동기화를 위한 프로토콜.
- 전송시에 네트워크 대역폭을 최소화하여 delta encoding algorithm을 구현하여 rcp, scp보다 훨씬 빠르고 효율적으로 site 간의 데이터를 동기화합니다.
- rsync는 클라이언트와 서버 모두 구성되어 있어 바로 사용이 가능하며 TCP 873포트를 사용합니다.
- server 구동 시 SSH나 RSH와 같은 Remote Shell protocol 기반에서 동작할 수 있어서 방화벽을 오픈 할 필요 없이 사용 가능합니다.
사용 문법
rsync options source destination
주요 옵션
- -v, —verbose : 자세한 정보 출력
- -r , —recursive : 재귀적(Recursively)으로 하위 디렉터리 까지 복사
- -a, —archive : -r, -t, -l, -p, -g, -o, -D 옵션을 적용시킨 것과 동일합니다.
- -t, —times : 타임스탬프 보존
- -l, links : 심볼릭 링크를 보존
- -p —perms : 퍼미션 정보를 보존
- -g —group : 그룹 소유권 보존
- -o —owner : 소유권 보존
- -D : 디바이스 파일 보존
- -z : 데이터 압축 복사(전송 구간에서만 파일을 압축)
- -h : 결과를 사람이 읽기 편한 포맷으로 보여줍니다.
- —exclude : 제외할 파일 또는 폴더 지정 (ex: exclude="/home" —exclude="*.txt")
- —include : 포함할 파일 또는 폴더 지정
- -e : ssh포트 변경 (-e 'ssh -p 1022')
- —delete : 원본 소스에 없는 파일을 백업 소스에서 삭제
간단 사용 예제
rsync -avzh -e 'ssh -p 1020' -delete /home/directory user@backupServerPort:/home/backup
'리눅스 > Ubuntu' 카테고리의 다른 글
[Ubuntu]안쓰는 노트북에 Ubuntu Server를 설치 No.1 (0) | 2020.06.04 |
---|