0과 1을 공부하다.

[Linux] Rsync 유틸리티를 이용한 파일/디렉터리 동기화 본문

Study/Linux

[Linux] Rsync 유틸리티를 이용한 파일/디렉터리 동기화

Developer_Jay 2024. 1. 18. 18:12
728x90

 

 

Linux OS에서 파일 및 디렉터리를 동기화 하기 위한 유틸리티인 rsync(remote sync)에 대해 알아본다.

※ 본 게시글은 Rocky/Centos 기반으로 작성한다.

 

 

설치

 

$ yum install rsync # 대부분 리눅스 패키지에는 설치되어 있음.

 

 

특징

 

  • rsync 는 local-local, remote-local, local-remote 동기화를 지원한다.
  • 주기적인 동기화를 원한다면 쉘 스크립트 작성 후 cron tab에 등록하여 주기적으로 실행 되도록 한다.
  • remote와 동기화 할 때 패스워드를 생략하고 싶다면 원격 서버에 미리 SSH Key를 전달한다.

 

 

SSH Key 생성 및 전송

 

1. SSH Key 생성

$ ssh-keygen -t rsa

 

 

2. 원격 서버에 공개 키 전송

$ ssh-copy-id {user}@{remote_server}

 

 

사용법

 

  • cp 명령어와 유사하게 options, source, target 순으로 입력한다.
  • SOURCE 혹은 TARGET이 리모트의 경로라면 [USER]@[HOST]:[PATH] 으로 입력한다.
$ rsync [OPTIONS] [SOURCE] [TARGET]

 

 

ex. 1) local - local

: 로컬간의 데이터 동기화

# /home/jihwan/source 경로의 디렉터리 및 파일을 /home/jihwan/target 경로의 디렉터리 및 파일과 동기화함.
$ rsync -avh /home/jihwan/source /home/jihwan/target

 

ex. 2) remote-local

: 원격지의 데이터를 로컬의 데이터와 동기화

# 원격지에 있는 /home/jihwan/source 경로의 디렉터리 및 파일을 로컬상의 /home/jihwan/target 경로의 디렉터리 및 파일과 동기화함.
$ rsync -avh jihwan@192.168.0.9:/home/jihwan/source /home/jihwan/target

 

ex. 3) local-remote

: 로컬의 데이터를 원격지와 동기화

# 로컬에 있는 /home/jihwan/source 경로의 디렉터리 및 파일을 원격지상의 /home/jihwan/target 경로의 디렉터리 및 파일과 동기화함.
$ rsync -avh /home/jihwan/source jihwan@192.168.0.9:/home/jihwan/target

 

 

 

주요 옵션

 

  • -a(--archive ): 아카이브 모드를 활성화하여 파일 및 디렉터리를 복사할 때 특정 속성을 유지. 하위 서브 옵션을 갖고 있음.
  • -v(--verbose): 더 자세한 출력을 제공하여 실행 중인 작업을 화면에 표시.
  • -h( --human-readable ): 이 옵션은 파일 크기 등의 정보를 인간이 읽기 쉬운 형식으로 표시.(ex. KB,MB 등등)
  • -e( --rsh ):  원격 호스트에 연결할 때 사용할 원격 셸. (ex. -e 'ssh -p 2222 포트번호 지정)
  • --exclude : 특정 디렉터리 및 파일 동기화 예외처리.

 

 

특정 디렉터리 및 파일 예외처리

 

  • 특정 디렉터리 및 파일 예외처리는 --exclude 옵션을 사용한다.
  • [SOURCE]에 있는 디렉터리 및 파일이 예외처리 되며, 경로는 반드시 상대경로로 작성해야 한다.

 

ex )

# /home/jihwan/source 경로의 remove_file 디렉터리를 동기화 대상에서 제외함.
$ rsync -avh --exclude="remove_file/" /home/jihwan/source /home/jihwan/target

 

 

참고 사이트

 

 

 

 

 

 

※ 본 게시글의 정보가 잘못 되었거나 부족한 부분에 대한 피드백을 환영합니다.

 

 

* CopyRight 2024. Jay Park All rights reserved.

728x90
Comments