리눅스 Rsync 명령어: 옵션 | 사용 예시

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)
테스트 환경RHEL 계열AlmaLinux 9.8root 계정2026-10-07 확인

서버 두 대의 폴더를 맞추려고 전체를 매번 다시 복사하면, 바뀐 파일이 하나뿐이어도 전송량은 전체 크기 그대로입니다. Rsync 명령어는 remote sync 의 줄임말로, 원본과 대상을 비교해 달라진 파일만 전송하며 로컬 폴더 사이와 SSH 로 연결한 서버 사이에서 같은 방식으로 동작합니다. 이 글에서는 기본 사용법과 옵션, SSH 와 rsync 데몬 두 접속 방식의 예시를 정리했습니다.

이 글의 출력은 AlmaLinux 9.8 의 rsync 3.2.7 에서 받은 것이며, 설치되어 있지 않다면 패키지 관리자로 설치합니다.

# RHEL 계열
dnf -y install rsync
# Debian 계열
apt -y install rsync

✅ 기본 사용 방법

기본 사용법은 아래와 같습니다.

rsync -옵션 원본 대상

cp 명령어와 같이 원본을 먼저, 대상을 뒤에 적습니다. 원본 끝에 슬래시[/]를 붙이면 폴더 안의 내용만 대상에 들어가고, 붙이지 않으면 폴더째 들어가게 됩니다.

~]# rsync -av www/ backup/
sending incremental file list
index.html
img/
img/logo.png
~]# rsync -av www backup/
sending incremental file list
www/
www/index.html
www/img/
www/img/logo.png

같은 명령을 다시 실행하면 파일 목록이 비고, sent 바이트가 수백 바이트로 줄어듭니다. 크기와 수정 시각이 같은 파일은 건너뛰기 때문입니다.

~]# rsync -av www/ backup/
sending incremental file list

sent 166 bytes  received 13 bytes  358.00 bytes/sec
total size is 3,015  speedup is 16.84

-a 없이 -r 만 쓰면 수정 시각이 보존되지 않아, 다음 실행에서 같은 파일을 다시 보내게 됩니다. 폴더를 동기화할 때는 -a 를 기본으로 붙입니다.

-n 옵션은 전송 없이 바뀔 파일만 보여 주며 결과 끝에 [(DRY RUN)]이 붙습니다. -⁠-delete 처럼 대상의 파일을 지우는 옵션은 -n 으로 먼저 확인한 뒤 실행합니다.

~]# rsync -avn --delete www/ backup/
sending incremental file list
deleting old.bak
index.html

sent 188 bytes  received 39 bytes  454.00 bytes/sec
total size is 3,013  speedup is 13.27 (DRY RUN)

✅ Rsync 명령어 옵션 & 시뮬레이터

옵션설명
-a--archive하위 디렉토리까지 복사하며 권한·소유자·수정 시각·심볼릭 링크를 보존 (-rlptgoD 와 같음)
-v--verbose전송한 파일 이름과 전송량을 출력
-z--compress전송 중 파일 데이터를 압축
-r--recursive하위 디렉토리까지 복사 (-a 에 포함)
-t--times수정 시각을 보존 (-a 에 포함). 다음 실행에서 건너뛸 파일을 정하는 기준
-n--dry-run전송 없이 바뀔 파일만 출력하고 끝에 (DRY RUN) 을 표시
-u--update대상 쪽이 더 새로운 파일은 건너뜀
-h--human-readable바이트 수를 K·M·G 단위로 출력
-P--partial --progress 와 같음. 파일마다 진행률을 표시하고 중단된 전송을 이어받음
-i--itemize-changes파일마다 바뀐 항목을 기호로 출력>f+++++++++ 새 파일 · >f.st.⁠.⁠.⁠.⁠.⁠. 크기·시각 변경 · *deleting 삭제
-e--rsh=COMMAND원격 셸 지정-e 'ssh -p 2222 -i /root/.ssh/key.pem'
--delete원본에 없는 파일을 대상에서 삭제 (-r 또는 -a 필요)
--exclude=PATTERN패턴에 맞는 파일·디렉토리를 제외--exclude '*.tmp' --exclude 'cache/'
--include=PATTERN--exclude 보다 앞에 두어 그 패턴만 제외에서 뺌
--max-size=SIZE지정 크기보다 큰 파일은 전송하지 않음 (--min-size 는 작은 파일)--max-size=3M --min-size=10k
--bwlimit=RATE전송 속도 제한, 단위는 KiB/s
--stats파일 수·전송량 통계를 출력
rsync 명령어 시뮬레이터rsync 3.2.7
[root@server work]#
브라우저 안에서만 동작하며 실제 파일은 건드리지 않습니다. www 폴더가 원본, backup 폴더가 지난 백업이며, rsync 옵션을 바꿔 가며 입력하고 ll, cat, diff 로 결과를 확인해 보세요. 원격 주소(user@host:경로)는 형식만 받고 접속은 하지 않습니다. 바꾼 내용은 [처음부터]를 누르면 돌아옵니다. 키보드 ↑↓ 로 앞에서 쓴 명령을 다시 불러오고, uknew help 를 입력하면 쓸 수 있는 명령이 나옵니다.

✅ 접속 방식: SSH 와 rsync 데몬

원격 서버와 동기화하는 접속 방식은 둘입니다. 호스트 뒤의 콜론 하나[:]는 SSH 를 거치고, 콜론 둘[::]은 873 포트의 rsync 데몬에 직접 연결합니다.

구분SSH 방식 (:)rsync 데몬 방식 (::)
접속 형식rsync -옵션 user@host:/경로 /로컬경로rsync -옵션 host::모듈/경로 /로컬경로
포트SSH 포트 (기본 22)873
암호화SSH 로 암호화암호화 없음
인증SSH 키 또는 비밀번호rsyncd.conf 의 hosts allow, 선택 사항으로 계정·비밀번호
서버 쪽 설정없음 (SSH 접속만 되면 사용)rsync-daemon 설치, /etc/rsyncd.conf, 873 포트 개방
용도서버 사이 백업·배포 (기본 선택)SSH 계정을 주지 않는 내부망 미러링

🔲 SSH 방식

SSH 로 접속할 수 있는 서버라면 서버 쪽 설정 없이 바로 쓸 수 있습니다. 포트가 다르거나 키 파일을 쓰는 경우 -e 옵션에 ssh 명령을 그대로 넣습니다.

# 로컬 → 원격
rsync -avz /home/2server_data/ root@192.168.45.239:/home/1server_data/
# 원격 → 로컬
rsync -avz root@192.168.45.239:/home/1server_data/html_Remote /home/2server_data
# SSH 포트·키 파일 지정
rsync -avz -e 'ssh -p 2222 -i /root/.ssh/key.pem' root@192.168.45.239:/home/1server_data/ /home/2server_data
rsync 명령어_원격에서 로컬 실행_결과

특정 파일이나 디렉토리를 빼려면 -⁠-exclude 를 패턴마다 하나씩 붙이거나, 중괄호로 묶어 한 번에 적습니다.

rsync -avz --exclude 'html_Remote_Excertion' --exclude 'Exception_File' root@192.168.45.239:/home/1server_data/ /home/2server_data
rsync -avz --exclude={'html_Remote_excertion/*','Exception_File'} root@192.168.45.239:/home/1server_data/ /home/2server_data
rsync 명령어_원격에서 로컬_특정 파일 및 디렉토리 제외

🔲 rsync 데몬 방식

rsync 데몬은 SSH 계정 없이 873 포트로 모듈 단위의 접근을 허용하며, 통신이 암호화되지 않으므로 같은 내부망의 서버 사이에서 씁니다.

AlmaLinux 9 에서는 rsync-daemon 패키지를 설치하고 서비스를 켭니다. firewalld 를 쓰는 서버라면 873 포트를 열고, 클라우드 서버는 콘솔 방화벽에서 엽니다. RHEL 8 이하에서 쓰던 xinetd 방식은 9 에서 사라졌습니다.

dnf -y install rsync-daemon
systemctl enable --now rsyncd
firewall-cmd --permanent --add-port=873/tcp
firewall-cmd --reload

설정 파일 [/etc/rsyncd.conf]에 모듈 이름과 경로, 허용할 호스트를 적습니다. read only 를 yes 로 두면 원격에서 받아 가기만 할 수 있습니다.

[myhome]
path = /home
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow = 192.168.45.182
max connections = 3
timeout = 30

원격에서 호스트 뒤에 콜론 둘만 적으면 모듈 목록이, 모듈 이름까지 적으면 그 안의 파일 목록이 나옵니다.

~]# rsync 192.168.45.239::
myhome
home
~]# rsync 192.168.45.239::myhome
drwxr-xr-x          4,096 2025/06/12 22:14:39 .
drwxr-xr-x          4,096 2025/06/12 22:21:10 1server_data
drwxr-xr-x          4,096 2025/06/12 22:14:39 2server_data

복사는 [호스트::모듈/경로] 형식으로 받습니다. -⁠-delete 는 원본에 없는 파일을 대상에서 지우고, -⁠-include 는 -⁠-exclude 보다 앞에 둔 항목만 제외에서 뺍니다.

~]# rsync -avz 192.168.45.239::myhome/1server_data/ /home/2server_data/
receiving incremental file list
./
Exception_File
html_Remote/
html_Remote_Excertion/

sent 58 bytes  received 332 bytes  780.00 bytes/sec
total size is 442  speedup is 1.13
~]# rsync -avz --delete 192.168.45.239::myhome/1server_data/ /home/2server_data/
~]# rsync -avz --include '*.html' --exclude 'exclude.txt' 192.168.45.239::myhome/1server_data/ /home/2server_data/
rsync 명령어_원격에서 로컬_delete 옵션 사용
rsync 명령어_원격에서 로컬_delete, include, exclude 옵션 사용

SELinux 가 켜진 서버에서는 모듈 경로 접근이 [Permission denied (13)]으로 막힐 수 있습니다. 테스트에서는 [setenforce 0]으로 SELinux 를 끈 뒤 통과했습니다.

~]# rsync -avz 192.168.45.239::myhome/1server_data/ /home/2server_data/
receiving incremental file list
rsync: change_dir "/1server_data" (in myhome) failed: Permission denied (13)
sent 8 bytes  received 90 bytes  65.33 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1658) [Receiver=3.1.2]

-⁠-bwlimit 로 전송 속도를 KiB/s 단위로 제한하고, -P 를 붙이면 파일마다 진행률을 함께 봅니다. -⁠-max-size 와 -⁠-min-size 는 지정 크기 범위의 파일만 전송합니다.

rsync -avzP --bwlimit=100 192.168.45.239::myhome/1server_data/ /home/2server_data/
rsync -avz --max-size='3M' --min-size='10k' 192.168.45.239::myhome/1server_data/ /home/2server_data/
rsync 명령어_원격에서 로컬_대역폭 100kb 제한 및 진행사항 -P 옵션으로 확인

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

인간임을 증명하세요: 3   +   8   =