Search
🔄

rsync 명령어 사용 방법

rsync 명령어 기본 구조 rsync options src dest
[명령어]
$ rsync -avz -e "ssh" 사용자명@원격서버주소:/원격/디렉토리/경로/ /로컬/디렉토리/경로/
a : 아카이브 모드. 파일 권한, 소유권, 심볼릭 링크 등을 유지.
v : 상세 출력 (verbose). 동기화 진행 상황을 화면에 표시.
z : 전송 중 데이터 압축.
e "ssh" : SSH를 통해 데이터를 전송.
/원격/디렉토리/경로/ : 원격 서버에서 동기화할 디렉토리. 끝의 /가 중요하며, 포함되면 디렉토리 내부의 파일만 동기화되고, 없으면 디렉토리 자체도 포함.
/로컬/디렉토리/경로/ : 동기화될 로컬 디렉토리 경로.
[예시]
$ rsync -avz -e "ssh" user@example.com:/home/user/data/ /local/data/
1.
디렉토리 구분:
원격 경로에 슬래시(/)를 붙이면 디렉토리 내부의 파일만 복사됩니다.
슬래시를 생략하면 디렉토리 자체도 복사됩니다.
CASE 1. ssh 포트가 22가 아닐 경우 연결
보안때문에 SSH 를 다른 포트(예: 10022) 를 사용하는 서버에 연결시 아래와 같이 -e 뒤에 ssh와 연결할 포트를 추가하고 실행 가능
$ rsync -avz --progress -e 'ssh -p 10022' lesstif@example.com:/home/lesstif/data /home/lesstif/backup/
CASE 2. Remote 파일을 Local에 복제
옵션 미지정 시 rsync에서 데이터 삭제는 진행되지 않는다. 삭제를 원한다면 delete 옵션 사용하면 된다.
# example.com 서버의 /home/lesstif/data 디렉토리를 로컬 서버의 /home/lesstif/backup/ 디렉토리에 백업
# -delete : example.com 서버의 /home/lesstif/data 디렉토리 목록에 존재하지 않는 항목을 로컬에서 삭제
$ rsync -avzr -delete lesstif@example.com:/home/lesstif/data /home/lesstif/backup/
[주요 옵션]
a, --archive : 압축 모드. -rlptgoD와 동일
-r, -t(타입스탬프 보존), -l (심볼릭 링크 보존), -p(permission 보존), -g(g그룹 보존), -o(소유자 보존 - root 만 가능), -D(device, special 파일 보존)
일반적으로 -a 옵션에 -z 옵션을 추가하면 충분
v, --verbose : 상세한 정보 출력
r, --recursive : 하위 디렉터리까지 재귀적으로 실행
z : 데이터 압축
h : human-readable, output numbers in a human-readable format
[기타 옵션]
A, --acls : ACLs를 보존한다(-p 옵션과 함께).
b, --backup : 백업을 만든다(--suffix 나 -backup-dir 참조).
c, --checksum : 시간이나 크기가 아니라 체크섬으로 파일을 비교한다.
d, --dirs : 하위 디렉터리를 포함하지 않고 전달한다.
e, --rsh=COMMAND : 원격 셸을 지정한다.
E, --executability : 실행 권한을 보존한다.
g, --group : 그룹을 보존한다.
H, --hard-links : 하드 링크를 보존한다.
k, --copy-dirlinks : 디렉터리의 심볼릭 링크는 원본 디렉터리로 변경한다.
K, --keep-dirlinks : 디렉터리의 심볼릭 링크는 심볼릭 그대로 취급한다.
l, --links : 심볼릭 링크는 심볼릭 링크 형태 그대로 복사한다.
L, --copy-links : 심볼릭 링크의 원본 파일이나 디렉터리로 변경한다.
o, --owner : 소유자를 보존한다(슈퍼유저만 해당).
p, --perms : 퍼미션을 보존한다.
q, --quiet : 에러가 아닌 메시지는 출력하지 않는다.
t, --times : 변경 시간을 보존한다.
u, --update : 새로운 파일은 덮어쓰지 않는다.
X, --xattrs : 확장 속성(externded attributes)을 보존한다.
-backup-dir=DIR : 지정한 디렉터리(DIR)에 백업을 만든다.
-bwlimit : 전송 대역폭을 제한한다. (KByte 기준)
-chmod=CHMOD : 파일이나 디렉터리 퍼미션(CHMOD)을 지정한다.
-copy-unsafe-links : “unsafe” 심볼릭 링크만 변경한다.
-delete : 서버 쪽에는 없고 클라이언트에만 있는 파일은 지운다.
-devices : 디바이스 파일을 보존한다(슈퍼유저만 해당).
-existing : 추가된 파일은 전송하지 않고 업데이트된 파일만 전송한다.
-exclude : 풀필요한 파일을 제외한다.
-no-motd : 데몬 모드(MOTD)를 출력하지 않는다.
-specials : 스페셜 파일을 보존한다.
-suffix=SUFFIX : 디렉터리(SUFFIX) 위치에 백업한다.
-partial : rsync는 전송중에 인터럽트가 발생하면 전송하던 파일을 삭제하는게 기본값입니다. 이 옵션을 사용하면 전송된 부분파일을 남기고 다음부분부터 재전송 할 수 있게하여 속도를 빠르게 할 수 있습니다.
4, --ipv4 : IPv4
6, --ipv6 : Ipv6
-version : 버전 번호를 출력한다.
(-h) --help : 사용법을 출력한다.