서버 간 파일 전송 시 SCP와 rsync는 자주 사용되는 명령어입니다. 두 명령어 모두 SSH 프로토콜을 기반으로 보안이 뛰어나지만, 목적과 동작 방식에는 차이가 있습니다.
🔹 SCP (Secure Copy)
기본 개념:
SCP는 SSH 프로토콜을 이용하여 네트워크를 통해 파일이나 디렉터리를 단순히 복사하는 명령어입니다.
장점
-
보안성이 높음 (SSH 암호화 사용)
-
간단한 명령으로 빠르게 파일 전송 가능
-
대부분 리눅스 시스템에 기본 포함되어 있음
단점
-
파일 전체를 매번 전송하므로 대용량 전송 시 비효율적
-
증분(변경된 부분만) 전송 불가능
-
전송 중 중단되면 재전송 시 처음부터 다시 시작해야 함
주요 옵션
| 옵션 | 설명 |
|---|---|
-r |
디렉터리 전체 복사 |
-p |
파일 권한, 소유자, 타임스탬프 보존 |
-P |
포트 지정 (기본값 22) |
-C |
데이터 압축 전송 |
-v |
상세한 전송 로그 표시 |
사용 예제
# 로컬 → 원격 서버로 파일 전송
scp file.txt user@192.168.0.10:/home/user/
# 디렉터리 전체 전송
scp -r ./project user@192.168.0.10:/home/user/
# 원격 서버 → 로컬로 파일 복사
scp user@192.168.0.10:/home/user/test.log ./downloads/
🔹 rsync (Remote Sync)
기본 개념:
rsync는 로컬과 원격 간 파일이나 디렉터리를 동기화(Incremental Transfer) 하는 명령어입니다. 파일의 변경된 부분만 전송하므로 효율적입니다.
장점
-
증분 전송: 변경된 부분만 전송하여 효율적
-
압축 전송으로 대역폭 절약
-
파일 속성, 권한, 소유권 유지 가능
-
동기화 기능 (삭제된 파일도 반영 가능)
단점
-
옵션이 많아 초기 사용이 다소 복잡
-
매우 큰 디렉터리 처리 시 메모리 사용량 증가
주요 옵션
| 옵션 | 설명 |
|---|---|
-a |
아카이브 모드 (권한, 시간, 심볼릭 링크 등 유지) |
-v |
전송 과정 출력 |
-z |
압축하여 전송 |
-u |
최신 파일만 갱신 |
--delete |
출발지에 없는 파일은 대상지에서 삭제 |
사용 예제

# 로컬 → 원격 서버로 디렉터리 동기화
rsync -avz /home/user/project/ user@192.168.0.10:/backup/project/
# 원격 → 로컬 동기화
rsync -avz user@192.168.0.10:/backup/logs/ /home/user/logs/
# 삭제 동기화 포함
rsync -avz --delete /source_dir/ /destination_dir/
# 포트 변경 (SSH 포트가 다를 경우)
rsync -avz -e 'ssh -p 2222' /home/user/data/ user@192.168.0.10:/data/
⚖️ 비교 요약
| 항목 | SCP | rsync |
|---|---|---|
| 프로토콜 | SSH 기반 복사 | SSH 기반 동기화 |
| 전송 방식 | 전체 파일 복사 | 증분(변경된 부분만) 전송 |
| 속도 | 상대적으로 느림 | 효율적, 빠름 |
| 사용 난이도 | 쉬움 | 옵션이 많아 복잡함 |
| 권장 사용 사례 | 1회성 파일 전송 | 정기적 백업, 대량 동기화 |
📘 정리 요약:
-
SCP → 빠른 단순 복사용
-
rsync → 효율적인 백업 및 동기화용