sklass의 s-class 프로그래밍 blog

rsync 본문

shell

rsync

sklass 2021. 10. 12. 17:13

rsync 명령은 파일과 디렉토리를 로컬 및 원격으로 동기화 (또는 복사)하는 데 사용됩니다. rsync의 중요한 기능 중 하나는 네트워크 대역폭을 최소화시켜 scp나 rcp 보다 훨씬 빠르고 효울적으로 데이터를 동기화 시키는 Delta Encoding Algorithm(델타 전송 알고리즘) 에서 작동한다는 것입니다. 즉, 전체 파일을 복사하는 대신 소스에서 대상으로 변경 사항만 동기화하거나 복사하여 궁극적으로 네트워크를 통해 전송되는 데이터의 양을 줄입니다. Linux 사용자는 일반적으로 rsync 명령을 사용하여 일상적인 백업, 미러링 및 복원 활동을 관리합니다. 

rsync 명령어는 아래와 같은 순서를 가집니다.

로컬 동기화:

$ rsync {options} {Source} {Destination}

원격 동기화 Pull

$ rsync {options} <User_Name>@<Remote-Host>:<Source> <Destination>

원격 동기화 Push

$ rsync {options} <Source> <User_Name>@<Remote-Host>:<Destination>

Options

  • -r, --recursive: 재귀적으로 하위 디텍토리까지 복사 (단 전송시 타임스탬프나 permission을 보존하지는 않습니다.)
  • -u, --update: Destination이 더 최신인 경우, Source에서 Destination으로 파일을 복사하지 않습니다.
  • -z, --compress: 데이터 압축
  • --delete: Source에서 삭제되어 없는 파일을 Destination으로 파일을 동기화 하지 않거나, Destination에 이미 있다면 삭제시키는 옵션입니다.
  • --exclude: Source에서 Destination으로 동기화 하지 않을  폴더나 파일을 선택하여 배제시킵니다.

Example

$ rsync \
    --exclude venv \
    --exclude .git \
    --exclude .vscode \
    --delete \
    -r \
    ../HITS_platform \
    sukkwono@oregon-login-node:/workdir_efs/sukkwono/

 

'shell' 카테고리의 다른 글

SFTP 란?  (0) 2022.01.16
iTerm2 단축키 정리  (0) 2021.12.20
linux tee 명령어  (0) 2021.09.04
Visual Studio Code에서 code 명령어 영구적으로 설정하는 법(MacOS)  (0) 2021.08.21
.bash_profile VS .zshrc  (0) 2021.08.21