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)
이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.