SCP와 rsync의 특장점 비교 및 사용 예제

서버 간 파일 전송 시 SCP와 rsync는 자주 사용되는 명령어입니다. 두 명령어 모두 SSH 프로토콜을 기반으로 보안이 뛰어나지만, 목적과 동작 방식에는 차이가 있습니다.


🔹 SCP (Secure Copy)

기본 개념:
SCP는 SSH 프로토콜을 이용하여 네트워크를 통해 파일이나 디렉터리를 단순히 복사하는 명령어입니다.

장점

  • 보안성이 높음 (SSH 암호화 사용)

  • 간단한 명령으로 빠르게 파일 전송 가능

  • 대부분 리눅스 시스템에 기본 포함되어 있음

단점

  • 파일 전체를 매번 전송하므로 대용량 전송 시 비효율적

  • 증분(변경된 부분만) 전송 불가능

  • 전송 중 중단되면 재전송 시 처음부터 다시 시작해야 함

주요 옵션

옵션 설명
-r 디렉터리 전체 복사
-p 파일 권한, 소유자, 타임스탬프 보존
-P 포트 지정 (기본값 22)
-C 데이터 압축 전송
-v 상세한 전송 로그 표시

사용 예제

bash
# 로컬 → 원격 서버로 파일 전송
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 출발지에 없는 파일은 대상지에서 삭제

사용 예제

bash
# 로컬 → 원격 서버로 디렉터리 동기화
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 → 효율적인 백업 및 동기화용