본문 바로가기
리눅스-Linux

📌 [CentOS] Rsync를 이용한 파일 가져오기/복사/동기화 🚀

by info4503 2025. 2. 24.

안녕하세요! 😊
오늘은 Rsync를 활용한 파일 전송 및 동기화 방법을 정리해보겠습니다.

**Rsync(Remote Sync)**는 빠르고 효율적인 파일 복사 및 동기화 도구입니다.
서버 간 데이터 백업, 로컬 디렉터리 동기화 등에 많이 사용됩니다.

그럼 Rsync의 개념부터 실전 사용법까지 차근차근 살펴보겠습니다! 🚀


🔍 1. Rsync란?

**Rsync(Remote Sync)**는 파일 및 디렉터리를 동기화하는 강력한 도구입니다.
주요 특징

  • 빠르고 효율적인 증분 복사(변경된 파일만 전송)
  • SSH 지원으로 보안 강화
  • 로컬 및 원격 서버 간 파일 복사 가능
  • 소스와 대상 디렉터리를 동기화하여 백업 가능

Rsync 기본 사용 형식

rsync [옵션] [소스] [대상]
  • 소스(Source) : 복사할 파일/디렉터리
  • 대상(Destination) : 파일을 복사할 위치

🛠 2. Rsync 설치 방법

일반적으로 CentOS에는 rsync가 기본 설치되어 있습니다.
설치 여부를 확인하려면 아래 명령어를 실행하세요.

rsync --version

📌 출력 예시

rsync  version 3.1.3  protocol version 31

✅ Rsync가 설치되지 않았다면 아래 명령어로 설치하세요.

sudo dnf install -y rsync

📂 3. Rsync 기본 사용법

📌 3.1 로컬 파일 복사

단순히 파일을 한 디렉터리에서 다른 디렉터리로 복사하는 방법입니다.

rsync -av /home/user/source/ /home/user/backup/

✅ source 디렉터리의 모든 파일을 backup 디렉터리로 복사합니다.

📌 옵션 설명

  • -a : 아카이브 모드(권한, 소유권, 심볼릭 링크 유지)
  • -v : 진행 상황 출력(Verbose)

🔄 4. 원격 서버와 파일 전송

✅ Rsync는 SSH를 사용하여 원격 서버로 파일을 전송할 수 있습니다.

📌 4.1 원격 서버에서 파일 가져오기 (Download)

rsync -av user@remote_server:/home/user/data/ /local/backup/

✅ 원격 서버의 /home/user/data/ 디렉터리를 로컬 /local/backup/에 복사합니다.

📌 4.2 원격 서버로 파일 보내기 (Upload)

rsync -av /home/user/data/ user@remote_server:/remote/backup/

✅ 로컬 /home/user/data/ 디렉터리를 원격 서버의 /remote/backup/에 복사합니다.

📌 SSH 포트가 기본(22번)이 아닐 경우?

rsync -av -e "ssh -p 2222" /home/user/data/ user@remote_server:/remote/backup/

✅ -e "ssh -p 2222" 옵션을 추가하여 SSH 포트(예: 2222번) 지정 가능


🔥 5. Rsync 옵션 정리 (필수 옵션 Best 10)

자주 사용하는 Rsync 옵션들을 정리했습니다!

옵션 설명

-a 아카이브 모드 (파일 권한, 소유권, 심볼릭 링크 유지)
-v 진행 상황을 출력 (Verbose)
-z 전송 시 파일을 압축 (압축하여 속도 향상)
-P 전송 진행률 표시 + 중단된 전송 이어서 하기 (--progress --partial)
-r 디렉터리 내부까지 재귀적으로 복사 (기본 기능)
-u 최신 파일만 전송 (수정되지 않은 파일은 건너뜀)
--delete 대상 폴더에 없는 파일 삭제 (소스와 동기화)
-e "ssh -p 포트번호" SSH 포트 변경 (기본 22번 외 포트 지정)
--exclude "파일명" 특정 파일/디렉터리 제외
--dry-run 실제 실행하지 않고 시뮬레이션 (테스트용)

🎯 6. 실전 예제 (활용 예시)

✅ 6.1 진행률을 보며 파일 동기화

rsync -avP /source/ /destination/

✅ 진행률과 복사된 파일을 볼 수 있습니다.

✅ 6.2 최신 파일만 동기화 (수정된 파일만 전송)

rsync -avu /source/ /destination/

기존 파일보다 새로운 파일만 복사하여 속도 최적화 가능

✅ 6.3 원격 서버에서 특정 파일을 제외하고 다운로드

rsync -av --exclude "*.log" user@remote:/data/ /local/backup/

✅ .log 파일을 제외하고 동기화

✅ 6.4 원격 서버와 완전한 동기화 (삭제 포함)

rsync -av --delete /source/ /destination/

✅ --delete 옵션을 사용하여 대상 폴더에 없는 파일을 삭제하여 동기화

✅ 6.5 테스트 실행 (실제 전송 없이 미리보기)

rsync -av --dry-run /source/ /destination/

실제 실행하지 않고 어떤 파일이 전송될지 미리 확인 가능


🚀 7. 자동 백업 스케줄링 (Crontab 활용)

✅ Rsync를 자동 백업 스케줄로 설정할 수도 있습니다.

crontab -e

📌 예제: 매일 밤 2시에 백업 실행

0 2 * * * rsync -av /home/user/data/ user@remote_server:/backup/

매일 새벽 2시에 자동으로 백업을 수행하는 설정입니다!


🎯 마무리

오늘은 Rsync의 개념부터 실전 사용법까지 정리해보았습니다! 🚀

✅ 핵심 요약

Rsync는 빠르고 강력한 파일 동기화 도구
로컬 & 원격 서버 간 파일 복사 가능 (SSH 지원)
옵션을 활용하면 효율적인 백업 및 동기화 가능
Crontab을 사용해 자동 백업 스케줄링 가능

💡 Rsync를 활용하면 데이터 백업과 동기화가 더욱 편리해집니다!

도움이 되셨다면 댓글과 공유 부탁드립니다! 😊
💬 다음에도 유용한 리눅스 정보를 가져올게요! 🚀🚀🚀