Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 3D프린터입문
- Jenkins
- Token인증방식
- git
- kubernetes
- ci/cd
- data serialization formats
- Notification
- IoTNetwork
- Kotlin
- NAS HDD교체
- docker container
- docker
- 3d프린터 초보
- 네이버클라우드
- 3D프린터 입문
- octoprint
- 3D프린터
- nas
- 리눅스 파일동기화
- 3D모델링
- 3D 프린터 용어
- linux job
- C언어
- 코틀린개발환경
- github
- gitlab
- OnlineIDE
- 데이터 직렬화 포맷
- 3D
Archives
- Today
- Total
0과 1을 공부하다.
[Linux] Rsync 유틸리티를 이용한 파일/디렉터리 동기화 본문
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
'Study > 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 |
Comments