rsync 기본 구조
Bash
rsync [옵션] [출발지] [목적지]필수 옵션
| 옵션 | 의미 |
|---|---|
-a | archive 모드 (권한, 소유자, 타임스탬프, 심볼릭링크 보존) |
-v | verbose (진행상황 출력) |
-z | 압축 전송 (원격 전송 시 유용) |
-P | 진행률 표시 + 부분 전송 재개 |
--delete | 목적지에만 있는 파일 삭제 (미러링) |
--dry-run | 실제 실행 없이 미리보기 |
--exclude | 특정 파일/디렉터리 제외 |
로컬 동기화
Bash
# 기본 복사 (trailing slash 주의)
rsync -av /src/dir/ /dst/dir/
# trailing slash 없으면 디렉터리 자체가 복사됨
rsync -av /src/dir /dst/ # → /dst/dir/
rsync -av /src/dir/ /dst/dir/ # → /dst/dir/ 내용만
# 미러링 (목적지에서 사라진 파일도 삭제)
rsync -av --delete /src/dir/ /dst/dir/원격 서버 동기화
Bash
# 로컬 → 원격 업로드
rsync -avz -P /local/app/ user@server:/opt/app/
# 원격 → 로컬 다운로드 (백업)
rsync -avz user@server:/var/log/ /backup/logs/
# SSH 포트 지정
rsync -avz -e "ssh -p 2222" /local/ user@server:/remote/
# 특정 파일 제외
rsync -av --exclude="*.log" --exclude=".git" /src/ /dst/증분 백업 스크립트
Bash
#!/bin/bash
BACKUP_ROOT="/mnt/backup"
SOURCE="/var/www"
DATE=$(date +%Y-%m-%d)
LATEST="$BACKUP_ROOT/latest"
DEST="$BACKUP_ROOT/$DATE"
rsync -av --delete \
--link-dest="$LATEST" \
--exclude="*.tmp" \
--exclude="node_modules" \
"$SOURCE/" "$DEST/"
rm -f "$LATEST"
ln -s "$DEST" "$LATEST"
echo "Backup complete: $DEST"--link-dest는 하드링크를 이용한 증분 백업 — 변경되지 않은 파일은 공간을 추가로 차지하지 않습니다.
성능 튜닝
Bash
# 압축 레벨 조정 (0~9, 기본 6)
rsync -av --compress-level=1 /src/ user@server:/dst/
# 체크섬 기반 비교 (타임스탬프 대신)
rsync -avc /src/ /dst/편집 안내 · Editorial Note
AI 도구가 초안 작성에 사용될 수 있습니다. 명령어의 실행 여부와 검증 환경은 각 가이드에 기재된 근거를 확인하세요. 적용 전 사용 중인 버전의 공식 문서를 확인하고, 오류는 이메일로 알려주세요. 이메일로 제보
주제 관련 공식 문서(자동 연결 · 문장별 근거 아님)GNU/Linux man 페이지 ↗
질문 & 답변 (Q&A)
이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.