SRE/Linux Basics

rsync, 원격으로 동기화

게임이 더 좋아 2022. 12. 2. 10:43
반응형
728x170

Remote SYNC 의 약자

 

역할

전송 시에 네트워크 대역폭을 최소화하는 delta encoding algorithm 구현으로 rcp 또는 scp 보다 훨씬 빠르고 효율적으로 데이터를 동기화

 

용도

  • rcp, scp를 대체
  • Remote Site mirroring
  • data backup 

 

 

 

 

관련 파일

/etc/rsyncd.conf

 

예시

 

[svc_name]
path = /user/{path}
uid = admin
gid = admin
read only = no
use chroot = yes
hosts allow = *
max connections = 30
timeout = 600
=> [QA_rsync] : 사용할 rsync 서비스 이름
=> path : source 경로
=> uid, gid : 권한 사용자, 권한 그룹
=> read only : file의 권한 설정
=> use chroot : change root => root 디렉토리 변경 (default : yes)
=> hosts allow :  접근 허용할 IP 또는 네트워크 segment   *(any) (default : * )
=> max connections : (default : 0)
=> timeout : 해당 시간 동안 파일 전송이 없으면 바로 exit (default : 0 => never time out)

 

 

포맷

rsync {options} {source} {destination}

 

 

 

 


 

예시 directory

$ tree test
test
├── dir1
└── dir2

 

기본 동작

$ rsync -a test test_dest


$ tree test_dest/
test_dest/
└── test
    ├── dir1
    └── dir2

 

 

source 에 '/ '를 추가하면 destination에 폴더 생성 없이 복사

(폴더 내용만 복사)

$ rsync -a test/ test_dest


$ tree test_dest/
test_dest/
├── dir1
└── dir2

 

Remote의 일부 directory만 local로 copy하는 경우

아래의 예시에서는 dir1, dir3만 copy

$ tree ../src/

../src/
├── dir1
│   └── file1
├── dir2
│   └── file2
└── dir3
    └── file3
    
    
    
$ cd src
$ for i in dir1 dir3; do rsync -avz lesstif@example.com:$PWD/$i/ /home/lesstif/backup/$i;done

 

destination 파일이 수정되었을 경우 source 파일이 기본적으로 덮어쓰기를 함, 덮어쓰기를 하지 않는 경우

-u 옵션을 추가시킬 경우, 파일이 변경되었다면 덮어쓰지 않음

$ rsync -avuz lesstif@example.com:/home/lesstif/data /home/lesstif/backup/

 

특정 확장자만 전송

아래는 .pdf로 끝나는 확장자만 전송함

include 에 모든 파일을 의미하는 * 를 써주고 그 다음에 전송할 파일 종류(--include=*.pdf) 를 적어준 후에

마지막에 --exclude=* 로 모든 파일을 제외해주면 의도한 대로 동작

$ rsync -zarv --prune-empty-dirs  --include="*/" --include="*.pdf" --exclude="*" "$from" "$to"

 


옵션

 

Option 내용
-r 하위 디렉터리까지 실행(recursive)
-l 심볼릭 링크 보존
-L 심볼릭 링크가 가리키는 파일 복사
-p 권한 보존
-t 타임스탬프 보존
-g 그룹 소유권 보존
-o 소유권 보존
-H 하드링크 보존
-v 진행 상황 출력
-u 업데이트된 내용만 전송
-z 전송할 때 압축
-b 백업 시, 동일한 파일 존재하면 ~붙여서 생성
-a rlptgoD를 한 번에 실행할 때 사용( --archive), archive mode
--progress 파일이 전송되는 동안 전송 상황정보 출력( -monitor 비슷)
-h human-readable, 사람이 읽을 수 있는 output number로 만듦

 

 

 


 

 

참고 링크

 

https://docs.rockylinux.org/books/learning_rsync/04_rsync_configure/

https://linuxhint.com/linux-journalctl-command/

https://www.lesstif.com/system-admin/rsync-data-backup-12943658.html

 

 

 

728x90
반응형
그리드형

'SRE > Linux Basics' 카테고리의 다른 글

tar  (0) 2022.12.02
grep(작성 중)  (0) 2022.12.02
cron, 크론탭  (0) 2022.12.02
cut, 문자열 자르기  (0) 2022.12.02
Linux 환경에서 init을 대신한 프로세스, systemd  (0) 2022.11.18