
서버 운영이나 개발 환경에서 가장 기본적이면서도 자주 활용되는 작업 중 하나는 파일 전송이다.
특히 로컬과 원격 서버 간 데이터를 주고받을 때 많이 사용되는 명령어가 바로 rsync와 scp 이다.
이번 글에서는 두 명령어의 특징과 사용법을 정리하였다.
1. scp (Secure Copy)
scp는 SSH 프로토콜을 기반으로 하는 단순한 파일 복사 도구이다.
- 장점: 간단하고 직관적
- 단점: 덮어쓰기만 가능, 변경된 파일만 동기화 불가
기본 사용법
# 로컬 → 원격
scp -i [KEY_PATH] [LOCAL_FILE] [USER]@[HOST]:[REMOTE_PATH]
# 원격 → 로컬
scp -i [KEY_PATH] [USER]@[HOST]:[REMOTE_PATH] [LOCAL_PATH]
예시
scp -i ~/.ssh/catshop-market-key.pem -r ./catshop_order.py catuser@123.45.67.89:/home/catuser/catshop/crawler/
2. rsync (Remote Sync)
rsync는 이름처럼 동기화(Sync)에 특화된 도구이다.
- 장점: 변경된 부분만 전송 (속도 빠름), 압축 및 보안 옵션 지원
- 단점: 별도 설치가 필요할 수 있음 (일반적으로 리눅스에 기본 포함됨)
기본 사용법
# 로컬 → 원격
rsync -av [LOCAL_PATH] [USER]@[HOST]:[REMOTE_PATH]
# 원격 → 로컬
rsync -av [USER]@[HOST]:[REMOTE_PATH] [LOCAL_PATH]
옵션 설명
- -a : 아카이브 모드 (권한, 타임스탬프 유지)
- -v : 전송 과정 자세히 출력
- -z : 전송 시 압축
- --delete : 원격에서 삭제된 파일은 로컬에서도 삭제
예시
rsync -av catshop_data/ catuser@123.45.67.89:/home/catuser/ -e "ssh -i '~/.ssh/catshop-market-key.pem'"
3. rsync vs scp 비교
| 항목 | scp | rsync |
| 주요 기능 | 파일 단순 복사 | 파일 동기화 (변경분만 전송) |
| 속도 | 전체 파일 복사 (비효율적) | 변경된 파일만 빠르게 전송 |
| 사용 난이도 | 매우 간단 | 다소 옵션이 많음 |
| 활용 상황 | 소규모 파일 전송 | 대규모 데이터, 백업, 배포 |
4. 활용 꿀팁
- 백업/배포 자동화 : rsync는 CI/CD 파이프라인에서 배포 시 자주 활용된다.
- 단순 전송 : 테스트용 파일 한두 개 보낼 때는 scp가 더 편리하다.
- 보안 키 관리 : AWS EC2 등에서는 -i [KEY_PATH] 옵션으로 PEM 키를 지정해야 한다.
5. 그 외 파일 전송 도구
1. SFTP (Secure File Transfer Protocol)
- 특징: SSH 프로토콜 기반으로 보안 전송 지원
- 명령 예시:접속 후 put, get, ls 명령으로 파일 업/다운로드 가능
sftp -i ~/.ssh/id_rsa user@server
2. lftp
- 특징: 고급 FTP/HTTP/SFTP 클라이언트, 자동 재시도·미러링 지원
- 명령 예시
lftp -u user,password sftp://server mirror -R ./local_dir /remote_dir # 로컬 → 원격 전체 동기화
3. rclone
- 특징: Google Drive, AWS S3, Dropbox 등 클라우드 스토리지와 연동 가능
- 명령 예시
rclone copy ./data remote:backup/data rclone sync ./data remote:backup/data
👉 rsync, scp는 서버 간 직접 전송에 강하고, sftp, lftp는 대화형·자동화에 유리하다.
클라우드 스토리지까지 아우르려면 rclone이 가장 실용적이다.
6. OS 지원 여부
✅ 파일 전송 도구별 OS 지원
| 도구 | Windows | Linux | 특징 |
| scp | ❌ (기본 없음, Git Bash/WSL/Putty 등 별도 설치 필요) | ✅ (OpenSSH 기본 제공) | SSH 기반 단순 파일 복사 |
| rsync | ❌ (기본 없음, Cygwin/WSL로 사용 가능) | ✅ (리눅스 기본 탑재율 높음) | 증분 복사(차이만 전송) 가능 |
| sftp | ⚪ (Windows 10 이상은 PowerShell에서 sftp 기본 제공, 옛날 버전은 없음) | ✅ (OpenSSH 기본 제공) | SSH 기반 FTP 대체 |
| lftp | ❌ (Windows 기본 없음, Cygwin/WSL 필요) | ✅ (리눅스에서 패키지 설치) | 고급 FTP/HTTP/HTTPS/SFTP 지원 |
| rclone | ✅ (공식 Windows 빌드 제공) | ✅ (공식 Linux 빌드 제공) | 클라우드 스토리지(Google Drive, S3 등)와 동기화 강점 |
🌼 마무리
정리하면, scp는 단순 복사, rsync는 효율적인 동기화에 적합하다.
상황에 맞게 두 명령어를 적절히 활용하면, 서버 관리와 배포 작업이 훨씬 효율적이고 안정적으로 진행될 수 있다.
👉 작은 파일은 scp, 대규모 프로젝트 배포는 rsync!
'Common > Linux' 카테고리의 다른 글
| Bash & Zsh 커스터마이징 가이드 (9) | 2025.08.29 |
|---|---|
| SSH로 서버 접속부터 systemd 자동 실행까지 (2) | 2025.08.19 |
| nohup, cron, pm2 사용법 정리 (12) | 2025.08.06 |