나의 잡다한 노트 및 메모

rsync 란? 본문

네트워크

rsync 란?

peanutwalnut 2025. 2. 27. 23:19

scp로 파일 전송을 하니까 속도가 너무 느려서 답답한 경험이 있었다.

찾아보니 scp는 싱글 스레드로 동작해서 그런 것 같았다.

그래서 좀 더 빠른 파일 전송 툴을 찾아보게 됐고 , rsync에 대해 공부하게 됐다. 

 

 

rsync는 파일과 디렉터리를 효율적으로 동기화하거나 백업할 수 있는 강력한 도구입니다. rsync는 기존 파일과 비교하여 변경된 부분(차이점)만 전송하므로, 네트워크 대역폭을 절약하고 전송 속도를 개선할 수 있습니다. 또한, 로컬, 원격, 또는 두 위치 간에 데이터를 동기화할 수 있으며, 압축, 보안(SSH를 통한 전송), 재시도 등 다양한 옵션을 제공합니다.

 

rsync의 주요 특징

  • 증분 전송: 원본과 대상 파일을 비교하여 변경된 부분만 전송합니다.
  • 압축 지원: 전송 중 데이터를 압축하여 네트워크 대역폭 사용을 줄입니다.
  • 삭제 옵션: 원본에 없는 파일을 대상에서도 삭제할 수 있습니다.
  • 보안 전송: SSH를 통해 안전하게 파일을 전송할 수 있습니다.
  • 다양한 옵션: 파일 권한, 심볼릭 링크, 소유자 정보 등도 유지하면서 동기화가 가능합니다.

 

기본 명령어 구문

 
rsync [옵션] 원본경로 대상경로
 

예를 들어, 로컬 디렉터리 /home/user/source/의 내용을 /home/user/destination/에 동기화하려면

rsync -av /home/user/source/ /home/user/destination/
 
 

옵션 설명

  • -a (--archive)
    아카이브 모드로, 파일 권한, 심볼릭 링크, 소유자, 그룹, 타임스탬프 등을 모두 유지하면서 재귀적으로 동기화합니다.
  • -v (--verbose)
    자세한 정보를 출력합니다.
  • -z (--compress)
    전송 중 데이터를 압축하여 네트워크 대역폭을 절약합니다.
  • -P
    진행 상황을 보여주고, 전송이 중단된 경우 재개(resume) 기능을 제공합니다. (--progress와 --partial을 포함한 옵션)
  • --delete
    원본에는 없지만 대상에 있는 파일을 삭제합니다. (동기화를 완벽하게 맞추고 싶을 때 사용)

 

원격 서버와의 사용 예시

원격 서버에서 파일을 가져오거나 보내려면 SSH를 이용합니다.

원격 → 로컬 복사

원격 서버(예: example.com)의 /remote/path/ 디렉터리를 로컬의 /local/path/로 동기화:

 
rsync -avz -e "ssh -p 22" user@example.com:/remote/path/ /local/path/
  • -e "ssh -p 22": SSH 프로토콜을 사용하고 포트를 22번으로 지정합니다.
  • -z: 전송 중 압축을 적용합니다.

로컬 → 원격 복사

로컬의 /local/path/ 디렉터리를 원격 서버의 /remote/path/로 동기화:

 
rsync -avz -e "ssh -p 22" /local/path/ user@example.com:/remote/path/

 

 

 

'네트워크' 카테고리의 다른 글

SSH 터널링  (0) 2025.02.27
--insecure-skip-tls-verify  (0) 2025.02.19
openssl.cnf 예시와 SAN과 CN 이란?  (0) 2025.02.19
Let's Encrypt란?  (0) 2025.02.19
TLS 관련 용어, 개념 정리  (0) 2025.02.19