서버의 기술, 웹의 경험, 디자인의 창조력, 코드의 세계

+61 2 8091 3767

질문, 의견 또는 우려 사항이 있으십니까? 당사의 전담 전문가 팀은 귀하의 의견을 듣고 도움을 드릴 준비가 되어 있습니다. 소셜 미디어, 전화, 실시간 채팅을 통해 연락해 주세요.

우분투(Ubuntu 24.04)에서 SCP와 Rsync의 차이점 및 활용 방법


개요

Ubuntu 24.04에서 원격 서버와 파일을 안전하게 주고받는 작업은 시스템 관리와 데이터 백업의 핵심입니다. SCPRsyncSSH(보안 셸)를 기반으로 데이터를 암호화하며 전송하는 두 가지 강력한 도구입니다. 하지만 이들은 속도, 효율성, 기능 면에서 크게 다르기 때문에, 작업 목적에 맞는 도구를 선택하는 것이 중요합니다. 이번 글에서는 두 도구의 차이점을 명확히 이해하고, 상황별 활용법을 알아보겠습니다.

SCP(Secure Copy)란?

SCP는 SSH를 활용한 파일 복사 도구로, 간단한 명령으로 로컬과 원격 서버 간 파일을 전송합니다. 복잡한 설정 없이 빠르게 사용할 수 있어, 소규모 파일이나 단일 디렉터리를 복사할 때 적합합니다. 하지만 전송이 중단되면 처음부터 다시 시작해야 하며, 변경된 부분만 전송하는 기능은 지원하지 않습니다.

Rsync란?

Rsync는 파일의 변경된 부분만 전송하는 ‘차등 전송’으로 잘 알려진 도구입니다. 블록 단위로 파일 변화를 감지해 델타(변경분)만 전송하므로, 네트워크 대역폭과 시간을 크게 절약합니다. 또한 전송 중단 시 재개가 가능하고, 상세한 진행률 확인 옵션을 제공해 대규모 데이터 동기화나 백업에 이상적입니다.

SCP와 Rsync의 주요 차이점 (테이블 비교)

구분SCP (Secure Copy)Rsync
연결 방식SSH 기반 단순 복사SSH 기반 차등 전송
차등 전송지원 안 함 (전체 재전송)지원 (델타만 전송)
중단 후 재개불가능 (처음부터 다시)가능 (`-P`로 부분 전송 및 진행률 확인)
속도 특성소규모 전송 시 빠름, 대량 전송은 비효율적대규모 작업에서 효율적
상황 확인단순 로그 (`-v`: 상세 메시지)상세 진행률 (`–progress`: 퍼센트 표시)
일반적 용도소규모 파일 복사, 설정 파일 전송대규모 백업, 주기적 동기화
옵션 예시`-r` (재귀), `-v` (verbose)`-avz` (아카이브+압축), `–progress`

SCP 사용 예시 및 전송 상황 확인

SCP의 기본 전송 명령은 다음과 같습니다.

scp user@remote-server:/remote/path/file /local/path/

디렉터리 전체를 복사하려면 -r(재귀) 옵션을 사용합니다.

scp -r user@remote-server:/remote/folder /local/path/

전송 상황을 확인하려면 -v(verbose) 옵션을 추가하면 됩니다.

scp -rv user@remote-server:/remote/folder /local/path/

출력 예시: “Transferred: sent 1234, received 5678 bytes” 같은 로그.
주의: 진행률은 퍼센트로 표시되지 않으며, 중단 시 처음부터 재시작해야 합니다.

Rsync 사용 예시 및 전송 상황 확인

Rsync의 기본 명령은 다음과 같습니다. (Push)

rsync -avz /local/folder user@remote-server:/remote/folder
  • -a: 아카이브 모드(권한, 타임스탬프 유지).
  • -v: 상세 출력.
  • -z: 압축으로 네트워크 사용량 감소.

진행률 확인 (Pull)

진행률을 확인하며 원격에서 로컬로 백업

rsync -avz --progress user@remote-server:/remote/folder /local/backup/
# 출력: file.txt  50%  1.2MB/s  00:01:23

전송 중단 후 재개 (Pull)

-P 옵션으로 중단된 백업 재개

rsync -avz -P user@remote-server:/remote/large.iso /local/backup/
# 출력: large.iso  1.9GB 100%  18.47MB/s  00:01:39 (이어짐)

증분 백업(Incremental Backup) 설정 (Pull)

변경된 부분만 백업

rsync -avz --progress --delete user@remote-server:/remote/folder /local/backup/

–delete: 원격에서 삭제된 파일을 로컬에서도 삭제.

특정 파일 제외 (Pull)

특정 파일(예: temp.log)을 제외하고 백업

rsync -avz --exclude 'temp.log' user@remote-server:/remote/folder /local/backup/

설명: 로그 파일이나 임시 파일을 백업에서 제외해 불필요한 데이터 전송 방지.

날짜별 백업 (Pull)

변경된 파일을 날짜별 폴더에 보관하며 백업

rsync -avz --backup --backup-dir=/local/backup/old_$(date +%Y%m%d) \
  --progress user@remote-server:/remote/folder /local/backup/

설명: 변경된 파일은 old_YYYYMMDD 폴더에 저장되며, /local/backup/은 최신 상태 유지.

시뮬레이션 (Pull)

실제 전송 없이 백업 결과를 미리 확인

rsync -avz --dry-run user@remote-server:/remote/folder /local/backup/
# 출력: file.txt (DRY RUN)

설명: –dry-run으로 어떤 파일이 전송될지 확인 후 실제 실행 결정.

크론탭 자동화 (Pull)

매일 새벽 3시 원격 데이터를 로컬로 백업

crontab -e
0 3 * * * /usr/bin/rsync -avz --delete user@remote-server:/remote/folder /local/backup/

주기적으로 동기화하며 최신 상태 유지.

추가 Rsync 활용법 (Push 중심)

디렉터리 구조만 복사 (Push)

rsync -av --include '*/' --exclude '*' /local/folder user@remote-server:/remote/folder

설명: 디렉터리 구조만 복사하며 파일은 제외, 서버 초기 설정 시 유용.

대용량 파일 크기 제한 (Push)

rsync -avz --max-size='500K' /local/folder user@remote-server:/remote/folder

설명: 500KB 이상 파일은 전송 제외, 대용량 파일 배포 방지.

대역폭 제한 (Push)

rsync -avz --bwlimit=600 /local/folder user@remote-server:/remote/folder

설명: 초당 600KB로 전송 속도 제한, 네트워크 부하 조절.

소스-대상 차이점 확인 (Push)

rsync -avzi /local/folder user@remote-server:/remote/folder
# 출력: <f.st...... file.txt (크기 변경)

설명: –itemized-changes(-i)로 소스와 대상 간 파일 크기, 타임스탬프 등 변경 사항을 상세히 표시. <f는 파일, s는 크기, t는 타임스탬프 변경 의미.

스파스 파일 처리 (Push)

rsync -av --sparse /local/sparse.img user@remote-server:/remote/

설명: –sparse로 희소 파일(데이터 없는 부분이 많은 파일)을 효율적으로 복사, 디스크 이미지 전송 시 공간 절약.

상황별 선택 가이드

  • SCP: 설정 파일(nginx.conf)이나 소규모 데이터 전송.
  • Rsync Pull: 원격 서버 백업, 대용량 데이터 복구 (예: /var/www/html → 로컬).
  • Rsync Push: 로컬 변경 사항 배포, 서버 업데이트 (예: 로컬 → /var/www/html).
  • 네트워크 불안정: Rsync의 -P와 –bwlimit 활용.

결론 및 추가 팁

SCP와 Rsync는 Ubuntu 24.04에서 안전한 파일 전송을 보장하지만, Rsync의 유연성과 효율성이 대규모 작업에서 두드러집니다. SCP는 단순한 작업에 적합합니다. 백업 자동화를 위해 Rsync와 크론을 조합하면 시간과 노력을 크게 절약할 수 있습니다.

#추가 팁

시뮬레이션: ‘rsync -avz –dry-run’ 으로 변경 사항 미리보기.
보안: SSH 키 인증 설정으로 비밀번호 입력 생략. -> SSH 키 생성 방법 보러가기

SSH 키 인증으로 전송 (비밀번호 입력 생략)

rsync -avz /local/folder user@remote-server:/remote/folder
# 비밀번호 입력 없이 즉시 전송 시작

SSH 키가 설정되면 SCP와 Rsync 모두 비밀번호 없이 작동.

비밀번호 입력 방식 예시

rsync -avz /local/folder user@remote-server:/remote/folder
# 출력: user@remote-server's password: (입력 대기)

키 인증 없이 기본 SSH 설정 사용 시 매번 비밀번호 입력 필요.

모니터링: /var/log에 Rsync 로그 추가로 문제 추적.

로그 파일 생성 예시

rsync -avz --log-file=/var/log/rsync.log user@remote-server:/remote/folder /local/backup/

로그 확인

cat /var/log/rsync.log
# 출력 예: 2025/03/05 14:32:10 [1234] sent 1234 bytes received 5678 bytes total size 9876

전송된 바이트, 파일 목록 등 상세 기록 확인 가능.


Share this article
Shareable URL
Prev Post

Vultr 서버에 추가IP를 적용하는 방법은?

Next Post

리눅스 터미널 완벽 가이드: Xshell·ZOC8 SSH 접속부터 Ubuntu 24.04·AWS EC2·WordPress 운영까지

댓글을 남겨주세요.😊

이메일 주소는 공개되지 않습니다. * 표시는 필수 입력 항목입니다.

Read next

초보자를 위한 서버 OS 리눅스 입문 안내서

초보자를 위한 이해하기 쉬운 리눅스 OS 서버 OS 리눅스 Linux®란 뭔가요? 서버 OS 리눅스는 UNIX 계열의 오픈 소스 운영 체제로, 다양한 하드웨어 플랫폼에서 동작하는 운영 체제입니다.…
0
Share