rsync를 이용한 파일 전송 및 동기화
Examples#
rsync -aHAXh \
-e "ssh -p 2022" \
--numeric-ids --info=progress2 \
--rsync-path="sudo rsync" \
/source/ /backup/
rsync -aHAXh --numeric-ids --info=progress2 \
--rsync-path="sudo rsync" \
-e "ssh -p 2222" \
heejun.yang@REMOTE_HOST:/superset/volumes/db_home16 \
~/_dev/db/
rsync -aHAXh --numeric-ids --info=progress2 \
heejun.yang@172.29.4.125:/home/heejun.yang/_dev/ /home/heejun.yang/_dev-old/rsync with sudo#
sudo visudo다음 내용을 추가
heejun-yang ALL=(root) NOPASSWD: /usr/bin/rsync또는 sudo에 tty 할당 (비추천)
rsync -ah --info=progress2 \
-e "ssh -t" \
--rsync-path="sudo rsync" \
--exclude 'tmp' \
--exclude 'logs' \
--exclude '*.log' \
heejun-yang@tchub.lge.com:/app/outline/ ./outline/Server간 파일 전송#
rsync 설치/실행/재실행#
$ sudo apt-get install rsync
$ sudo systemctl start rsync
$ sudo systemctl restart rsyncServer Side#
-
rsync 설정
/etc/default/rsync -
개별 설정
/etc/rsyncd.conflog file = /var/log/rsyncd.log [SVC_MANUAL_HTML] path = /home/heejun-yang/HTML/generates/ comment = SVC Manual HTML Sync uid = root gid = root use chroot = no read only = yes hosts allow = 10.182.181.4 max connections = 10 timeout = 30
Client Side#
- sync
rsync [option] [서버 IP]::[rsync 서비스] [저장경로]
rsync [option] –bwlimit=[대역폭] [서버 IP]::[rsync 서비스] [저장경로]
rsync [option] –exclude-from=’[전송 제외 항목]’ [서버 IP]::[rsync 서비스] [저장경로]
$ rsync -avzurt 10.157.57.58::SVC_MANUAL_HTML/*.zip /if/html
$ rsync -avzurt --bwlimit=1000 192.168.10.5::web /backup/web
$ rsync -avzurt --exclude-from='/backup/exclude_txt' 192.168.10.5::web /backup/web옵션 요약표
옵션 풀네임 설명 -a archive 원본 속성·구조 최대한 보존, 재귀적 복사 포함 -v verbose 자세한 출력 -z compress 네트워크 전송 시 데이터 압축 -u update 대상에 새 버전 있으면 복사 안 하고 건너뜀 -r recursive 하위 폴더까지 재귀적 복사 -t times 수정시간/타임스탬프 원본 그대로 복사 참고
- 보통
**-avz**조합을 가장 많이 쓰며,**-a**에**-r**,**-t**는 이미 포함되어 있으므로 중첩 표기 필요 없음.
Trouble Shooting#
- rsync daemon 확인
$ sudo systemctl status rsync
● rsync.service - fast remote file copy program daemon
Loaded: loaded (/lib/systemd/system/rsync.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2025-03-25 10:58:26 KST; 3min 37s ago
Docs: man:rsync(1)
man:rsyncd.conf(5)
Main PID: 763206 (rsync)
Tasks: 1 (limit: 38417)
Memory: 836.0K
CGroup: /system.slice/rsync.service
└─763206 /usr/bin/rsync --daemon --no-detach
Mar 25 10:58:26 tecomm.ubuntu systemd[1]: Started fast remote file copy program daemon.- @ERROR: chdir failed 일때
rsyncd.conf 설정 중 path가 실제로 있는 path인지 확인해 볼 것