거의 모든 복사의 정답
rsync 가 두 위치 간 (local-local, local-remote, remote-remote) 복사하지만 바뀐 부분만 전송. 권한 보존, symlink 처리, 네트워크 끊김 후 재개, 무슨 일 했는지 정확히 보고.
항상 치는 flag 세트
rsync -avzP src/ dest/
-a— archive (재귀 + 권한 + 시간 + symlink).-v— verbose, 파일 나열.-z— 와이어 압축.-P— partial + progress (재개 가능 + 파일별 진행도).
마지막 슬래시 룰
rsync -av src/ dest/— src 의 내용 을 dest 로.rsync -av src dest/— src 자체 를 dest 로 →dest/src/생성.
source 의 마지막 슬래시가 매번 rsync 전에 내리는 결정.
유용한 추가
--delete— src 에 없는 dest 파일 제거. mirror 모드. 신중.--exclude='node_modules' --exclude='.git'— 패턴 제외.--exclude-from=.rsyncignore— 파일에서 패턴 읽기.--dry-run(또는-n) — 실제 동작 없이 시뮬레이션. 항상 -n 먼저.-e ssh— 명시적 전송 (요즘 default 가 이미 ssh).
실전 패턴
- 홈 백업:
rsync -avzP ~/ /Volumes/backup/home/ - 원격 mirror:
rsync -avzP --delete ./site/ user@web:/srv/site/ - 원격에서 pull:
rsync -avzP user@server:/data/ ~/local-data/