[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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바