본문 바로가기
카테고리 없음

rsync로 로컬 파일 서버로 옮기기 / scp와 차이

by Enhydra lutris 2024. 12. 4.

rsync란?

Remote Sync의 약자로 시스템 간 파일을 효율적으로 동기화 하고 복사하는 유틸리티

변경된 데이터만 복사하여 네트워크, 디스크의 사용량을 최소화 할 수 있다.


필요성

 

  1. 효율적인 데이터 전송:
    • 기존 파일의 변경된 부분만 전송하므로 대규모 데이터 동기화 시 빠르고 효율적
  2. 유연한 동기화 옵션:
    • 디렉터리 구조 유지, 삭제된 파일 반영등 다양한 동기화 옵션 존재
  3. 재시도 가능:
    • 네트워크등의 문제로 중단된 작업을 다시 처음부터 하지 않고, 재개할수 있음
  4. 보안성:
    • ssh를 이용안 보안성 보장

사용법

  • source: 복사할 파일 또는 디렉터리
  • destination: 파일이 복사될 위치
rsync [옵션] [source] [destination]

옵션

옵션 설명 필요한 상황
-a 아카이브 모드. 심볼릭 링크, 파일 권한, 타임스탬프 유지. 파일의 모든 속성을 보존하며 복사해야 .
-v 상세 출력. 작업 진행 상황을 확인해야 .
-z 데이터 전송 압축. 네트워크 대역폭을 줄이고 전송 속도를 높이고 싶을 .
-e ssh SSH 사용한 보안 전송. 안전하게 파일을 전송하고 싶을 .
--progress 전송 진행 상황을 표시. 복사 속도와 남은 시간을 확인하고 싶을 .
--partial 중단된 작업을 재개. 네트워크가 불안정하거나 대규모 파일 복사를 중단 재개해야 .
--delete 대상에서 소스에 없는 파일을 삭제. 소스와 대상 디렉터리를 완전히 동기화해야 .
--exclude 특정 파일 또는 디렉터리 제외. : --exclude='*.log' (로그 파일 제외).
-r 디렉터리 내부의 모든 하위 파일/디렉터리 복사. 디렉터리 전체를 복사해야 .
-u 최신 파일만 복사. 이미 복사된 파일을 덮어쓰지 않도록 방지하고 싶을 .
-n 시험 실행. 실제 복사 대신 실행 계획만 표시. 복사 작업 전에 변경 사항을 미리 확인하고 싶을 .

예시

#로컬 디렉토리 카피
rsync -av /local/dir/ /backup/dir/

#원격 서버에 동기화
rsync -avz /local/dir/ username@remote_host:/remote/dir/

#원격 서버에서 데이터 가져오기
rsync -avz username@remote_host:/remote/dir/ /local/dir/

#ssh를 이용한 전송
rsync -e ssh -av /local/dir/ username@remote_host:/remote/dir/

#중단된 작업 재시작
rsync --partial --progress -av /local/dir/ username@remote_host:/remote/dir/

#특정파일 제외
rsync -av --exclude='*.tmp' /source/dir/ /destination/dir/

#삭제 동기화
rsync -av --delete /source/dir/ /destination/dir/

주의사항

  1. 파일 삭제 주의:
    • --delete 옵션은 대상에서 소스에 없는 파일을 삭제하므로, 잘못 사용하면 데이터를 잃을 수 있음.
  2. SSH 키 필요:
    • 원격 서버와 파일 전송 시 비밀번호 입력 없이 자동화하려면 SSH 키 설정 필요.
  3. 대규모 데이터 전송:
    • 잘못된 설정으로 대규모 데이터를 덮어쓰거나 삭제하지 않도록 -n 옵션으로 미리 확인.
  4. 네트워크 상태:
    • 네트워크가 불안정할 경우 --partial 옵션을 사용해 재시작 가능하도록 설정.

rsync vs scp

기능 rsync scp
전송 방식 차분 전송 (변경된 파일/데이터만 전송) 전체 파일을 항상 전송.
속도 데이터 변경량이 적을 경우 빠름. 항상 동일 속도.
동기화 기능 소스와 대상 디렉터리를 동기화 가능 (--delete 옵션). 단순 파일 복사에 적합.
재시도 가능 중단된 작업 재개 가능 (--partial). 중단되면 처음부터 다시 시작.
보안 기본적으로 SSH 함께 사용 가능. SSH 함께 사용되지만 동기화 기능은 없음.

 

 

댓글