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

2024. 1. 18. 18:12·System/Linux
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

 

 

참고 사이트

 

  • https://hbase.tistory.com/318

 

 

 

 

 

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

 

 

* CopyRight 2024. Jay Park All rights reserved.

728x90
저작자표시 비영리 변경금지 (새창열림)

'System > Linux' 카테고리의 다른 글

[Linux] Rocky 8 고정ip 설정  (0) 2022.06.27
[Linux] Rocky 8 방화벽(Firewall) 설정  (0) 2022.06.27
[Linux] SSH(Secure Shell) 포트변경  (0) 2022.05.27
[Linux] 리눅스 명령어 (파일 및 디렉터리 관리 / 시스템 재부팅 및 종료)  (0) 2022.01.17
[Linux] Vi(Vim) .vimrc 파일 수정을 통해 가독성을 높이는 방법  (0) 2022.01.13
'System/Linux' 카테고리의 다른 글
  • [Linux] Rocky 8 고정ip 설정
  • [Linux] Rocky 8 방화벽(Firewall) 설정
  • [Linux] SSH(Secure Shell) 포트변경
  • [Linux] 리눅스 명령어 (파일 및 디렉터리 관리 / 시스템 재부팅 및 종료)
dev.parkjh
dev.parkjh
Jay Blog. Github: https://github.com/GreatPark96
  • dev.parkjh
    0과 1을 공부하다.
    dev.parkjh
  • 전체
    오늘
    어제
    • 분류 전체보기 (114)
      • Profile (2)
      • Paper (6)
      • Column (3)
      • Project (8)
        • Smart Home (3)
        • 3D Printing (5)
      • Front-End (0)
        • Web (3)
      • Back-End (8)
        • API (1)
        • DB (1)
        • Laravel (4)
      • Language (16)
        • Kotlin (11)
        • C, C++ (3)
        • JAVA (0)
        • python (2)
      • System (28)
        • Server (15)
        • Security (1)
        • Network (1)
        • Linux (8)
        • Cloud (3)
      • ETC (34)
        • Book Recommend (Computer) (3)
        • IoT (7)
        • BlockChain (7)
        • ETC (17)
      • My YOLO (1)
      • Note (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    nas
    coderabbit
    github
    work hour
    네이버클라우드
    3D프린터
    3D
    3d프린터 초보
    ai code review
    NAS HDD교체
    linux job
    데이터 직렬화 포맷
    ncp container registry
    3D모델링
    gitlab
    Kotlin
    ci/cd
    3D프린터 입문
    kubernetes
    docker
    data serialization formats
    Jenkins
    리눅스 파일동기화
    Notification
    git
    docker private register
    코틀린개발환경
    docker container
    C언어
    Database
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dev.parkjh
[Linux] Rsync 유틸리티를 이용한 파일/디렉터리 동기화
상단으로

티스토리툴바