1. Introduction
What Is rsync?
rsync는 빠르고 효율적인 파일 및 디렉터리 동기화와 복사를 위해 설계된 명령줄 도구입니다. Linux 및 Unix 계열 시스템에서 널리 사용되며, 델타 전송 알고리즘 덕분에 소스와 대상 간의 차이점만 전송합니다. 이 때문에 파일 수가 많아도 매우 효율적입니다. Ubuntu를 비롯한 많은 Linux 배포판에서는 rsync가 기본으로 설치되어 있어 시스템 관리자와 개발자에게 필수 도구가 됩니다.
Benefits of Using rsync on Ubuntu
Ubuntu에서 rsync는 일상적인 파일 백업 및 디렉터리 동기화 작업에 매우 효과적입니다. 그래픽 인터페이스에 의존하지 않고 터미널에 몇 줄의 명령만 입력하면 로컬 및 원격 모두에서 빠른 파일 전송을 수행할 수 있습니다.
특히 다음과 같은 상황에서 유용합니다:
- 외장 HDD나 NAS 장치에 정기적인 백업
- 개발 중 프로젝트 폴더 동기화
- 원격 서버에 파일 배포
- 파일 미러링을 통한 가용성 향상
How rsync Differs from Other Commands
cp 명령과 비교하면 rsync는 소스와 대상 간의 차이점만 전송하므로 처리 시간이 크게 줄어듭니다. scp와 비교할 때는 오류 발생 후 재개 기능과 유연한 대역폭 제어를 제공하며, 파일 소유자, 권한, 타임스탬프와 같은 속성을 보존할 수 있다는 점이 큰 장점입니다.
Purpose of This Article
이 문서는 Ubuntu 환경에서 rsync를 설치하고 효과적으로 사용하는 방법을 실용적인 명령 예시와 실제 사용 사례를 통해 설명합니다. 초보자도 쉽게 시작할 수 있도록 GUI 도구와 문제 해결 팁을 단계별로 다룹니다.
2. Installing rsync on Ubuntu
Checking Whether rsync Is Preinstalled
대부분의 Ubuntu 환경에서는 rsync가 기본으로 설치되어 있습니다. 다음 명령으로 확인할 수 있습니다:
rsync --version
버전 정보가 표시되면 rsync가 이미 설치되어 사용 준비가 된 것입니다.
Installing rsync If It Is Not Installed
“command not found” 또는 “rsync: command not found”와 같은 메시지가 나타나면 다음 단계에 따라 설치합니다:
- 패키지 목록 업데이트:
sudo apt update
- rsync 설치:
sudo apt install rsync
- 설치 확인:
rsync --version
버전 정보가 나타나면 설치가 성공적으로 완료된 것입니다.
Is Installation via Snap or Other Methods Necessary?
Ubuntu에서는 APT를 통한 rsync 설치가 가장 권장되는 방법입니다. Snap 패키지도 존재하지만, 일반적인 사용 사례에서는 APT 버전이 충분히 안정적이며 호환성이 좋습니다. 특별한 이유가 없는 한 APT를 사용하는 것이 좋습니다.
Installation Notes
- 오래된 Ubuntu 버전에서는 저장소 업데이트가 필요할 수 있습니다.
- 루트 권한이 필요하므로
sudo사용을 잊지 마세요. - 네트워크가 불안정하면 설치 오류가 발생할 수 있으니 안정적인 연결을 권장합니다.
3. Basic Usage of rsync
Basic rsync Syntax
rsync 명령 구문은 간단하면서도 매우 유연합니다. 기본 형태는 다음과 같습니다:
rsync [options] source destination
예를 들어 /home/user/documents/ 디렉터리의 내용을 /mnt/backup/으로 복사하려면:
rsync -av /home/user/documents/ /mnt/backup/
이 명령은 다음 옵션을 사용합니다:
-a: 아카이브 모드 (디렉터리 구조, 권한, 소유자 등을 보존)-v: 자세한 출력 (복사되는 파일을 표시)
Trailing Slash Behavior
rsync에서는 소스 경로에 슬래시를 포함하느냐에 따라 동작이 달라집니다:
/home/user/documents/(슬래시 포함) → 내용만 복사됩니다./home/user/documents(슬래시 미포함) → 디렉터리 자체가 복사됩니다.
이것은 rsync 고유의 중요한 동작으로, 목표에 따라 적절히 사용해야 합니다.
자주 사용되는 옵션
| Option | Description |
|---|---|
-a | Archive mode (recursive and preserves attributes) |
-v | Displays detailed transfer output |
-n | Dry run (shows what would happen without executing) |
--progress | Shows transfer progress |
--delete | Deletes files in the destination that no longer exist in the source |
실행 전에 작업 미리보기
파일을 실제로 전송하기 전에 rsync가 무엇을 할지 확인하려면 --dry-run 옵션을 사용하세요:
rsync -av --dry-run /home/user/documents/ /mnt/backup/
이것은 우발적인 데이터 손실을 방지하는 데 도움이 됩니다.
숨김 파일 처리
기본적으로 rsync는 .로 시작하는 숨김 파일을 포함하여 구성 파일과 환경 설정도 동기화할 수 있습니다.
4. 원격 서버와 동기화
SSH를 통한 원격 동기화
rsync의 가장 큰 장점 중 하나는 SSH를 통해 원격 서버와 파일을 동기화할 수 있어 안전한 데이터 전송을 보장한다는 것입니다.
rsync -avz source user@remote_host:destination
예시:
rsync -avz /home/user/documents/ user@example.com:/var/www/backup/
-z는 전송 중 압축을 활성화합니다.user@host는 SSH 로그인을 지정합니다.
첫 번째 연결 및 SSH 키 인증
첫 연결 시 호스트의 진위성을 확인하라는 메시지가 나타날 수 있습니다. 올바르면 “yes”를 입력하세요.
자주 사용한다면 비밀번호 입력을 피하기 위해 SSH 키 인증을 권장합니다:
ssh-keygen -t rsa
ssh-copy-id user@example.com
사용자 지정 SSH 포트 지정
원격 서버가 기본 SSH 포트를 사용하지 않는 경우 -e로 지정하세요:
rsync -avz -e "ssh -p 2222" /home/user/documents/ user@example.com:/var/www/backup/
양방향 동기화에 대한 중요한 주의사항
rsync는 단방향 동기화만 수행합니다. 진정한 양방향 동기화를 위해 unison 같은 도구를 고려하세요.
5. 유용한 rsync 옵션 및 실전 예시
기본을 넘어선 고급 옵션
–delete: 소스에 없는 파일 제거
rsync -av --delete /home/user/source/ /mnt/backup/
이 옵션을 사용하기 전에 항상 --dry-run으로 테스트하세요.
–exclude: 특정 파일 또는 디렉토리 제외
rsync -av --exclude '*.log' --exclude 'node_modules' /project/ /backup/
–bwlimit: 대역폭 제한
rsync -av --bwlimit=5000 /data/ user@remote:/data/
실전 사용 사례
백업을 위한 rsync 사용
rsync -a --delete /home/user/ /media/usb/backup/
cron을 사용한 자동화
0 2 * * * rsync -a /home/user/ /mnt/backup/ >> /var/log/rsync.log 2>&1
유연성과 효율성의 균형
rsync는 뛰어난 유연성과 높은 전송 효율성을 결합하여 안전하고 정확한 파일 동기화를 위한 강력한 도구입니다.
6. GUI 도구: Grsync
명령줄에 익숙하지 않은 사용자에게 추천
Grsync는 rsync의 그래픽 프론트엔드로, 사용자가 동기화 작업을 시각적으로 구성하고 실행할 수 있게 합니다.
Ubuntu에 Grsync 설치
sudo apt update
sudo apt install grsync

기본 사용법
- 소스 및 목적지 경로 지정
- 체크박스를 통해 rsync 옵션 선택
- 제외 패턴 구성
- 안전하게 드라이 런 실행
프로필 기반 관리
Grsync는 구성을 프로필로 저장할 수 있어 여러 백업 또는 동기화 작업을 쉽게 관리할 수 있습니다.
장단점
| Pros | Cons |
|---|---|
| Intuitive GUI, no commands required | Some advanced options are not available |
| Easy to understand options | Less detailed output than terminal usage |
| Safe for beginners | Less flexible than direct rsync usage |
7. 일반적인 문제와 해결책
파일 권한이 보존되지 않음
sudo rsync -a /source/ /destination/
심볼릭 링크가 예상대로 처리되지 않음
- 링크 보존:
-a사용 - 실제 파일 복사:
--copy-links사용
“Permission denied” 오류
sudo rsync -a /source/ /destination/
원격 동기화 중 연결 오류
- SSH 연결 확인
- 목적지 경로 및 권한 확인
“Argument list too long” 오류
- 포함/제외 규칙 사용
- 동기화를 작은 배치로 분할
8. 자주 묻는 질문
Q1. 소유권과 권한을 보존하려면 어떻게 하나요?
A. -a 옵션을 사용하세요.
Q2. 특정 파일을 제외하려면 어떻게 하나요?
A. --exclude를 사용하세요.
Q3. 대역폭 사용을 제한하는 방법은?
A. --bwlimit를 사용하세요.
Q4. 실행 전에 작업을 미리 볼 수 있나요?
A. --dry-run을 사용하세요.
Q5. 숨겨진 파일이 복사되나요?
A. 예, 기본적으로 그렇습니다.
Q6. rsync와 scp의 차이점은 무엇인가요?
A. rsync는 델타 전송과 재개 기능을 지원하여 더 효율적입니다.
9. 요약
이 기사는 rsync 설치, 기본 및 고급 사용법, 원격 동기화, GUI 도구, 문제 해결 및 FAQ를 다루었습니다.
rsync가 필수적인 이유
- 빠른 델타 기반 전송
- 권한과 소유권 보존
- 안전한 원격 동기화
- 많은 옵션으로 높은 사용자 정의 가능
- cron을 통한 자동화 지원
- GUI 도구로 초보자 친화적
rsync는 Linux 사용자에게 필수적인 도구입니다. 기본을 익히고 점차 고급 옵션을 적용함으로써 전문 수준의 파일 관리 및 백업 워크플로를 달성할 수 있습니다.


