본문 바로가기
IT 학습 공간 ::)

[Linux]리눅스 rsync 명령어 사용법

by 에스타롯사 2024. 1. 24.

안녕하세요 롯사입니다.

 

리눅스에서 파일 및 디렉터리를 로컬 혹은 원격지로 복사하거나 동기화할 때

 

사용하는 여러 명령어들 중에서 개인적으로 가장 사용 빈도가 높았고 강력한

 

rsync 명령어에 대해서 알아보겠습니다.

 

 

what is rsync ?


rsync (remote sync) 의 약자로서 unix 및 linux 시스템에서 파일을 효율적으로 전송하고

동기화하기 위한 유틸리티의 하나로 로컬 혹은 원격지로 동기화가 가능합니다.

변경된 사항만 빠르게 동기화가 가능하며 rcp, scp 보다 기본적으로 빠르고 효율적으로

사용이 가능합니다.

 

 

 

 

 

자 그럼 본론으로 들어가서 설치 방법과 사용하는 구문과 형식에 대해서 알아보겠습니다.

 

rsync 설치


* rsync -qa | grep rsync  (rsync 패키지 설치 여부 확인)

* yum install -y rsync (rsync 설치)

저는 현재 설치가되어 있는 상태입니다.

 

rsync 설정 파일 경로


* cd /etc/rsyncd.conf (rsync 설정 파일)

rsync 설정 파일

* rsync  데몬 (rsyncd) 을 구동시켜서 사용하는 방식의 예로 rsyncd.conf 에 정의된 정책에 의해서

  동기화 작업이 진행됩니다.

 

rsync 설정 파일 


* vi /etc/rsyncd.conf

처음 설치시 default 상태이며 root 가 아닌 운영계정 사용시 아래와같이 수정해서 사용하시면 됍니다.
사용자 계정 및 그룹 추가

 

 

rsync  데몬 및 네트워크 설정


* systemctl enable rsyncd.service (rsync 서비스 활성화)

* systemctl start rsyncd.service (rsync 서비스 시작)

* firewall-cmd --permanent --add-service rsyncd (방화벽 서비스 추가)

* firewall-cmd --reload (방화벽 리로드)

서비스 시작상태 확인 (방화벽 사용시 위 명령어와같이 서비스 등록이 필요합니다.)

 

rsync  사용 방법


* rsync [option ...] [source] [target] (사용 구문)

기본적인 사용 구문은 위와같으며 상황과 사용하는 옵션에 따라 몇가지로 구분해서 사용할수있습니다.

 

[주요 옵션]

option  
-v verbosity를 높이는 옵션으로 과정을 더 자세하게 출력
-z compress를 주는 옵션으로 파일을 압축해서 복사
-h 사람이 읽기 쉬운 형태로 복사결과를 출력
-a archive 모드로 -rlptgoD 옵션을 적용한것과 같이 symlink, 권한과 같은 속성을 그대로 복사하는 옵션
-l symlink 형태로 복사하는 옵션
-p 파일과 디렉토리들의 권한을 유지하는 옵션
-g 그룹 속성을 유지하는 옵션
-o 소유자의 속성을 유지하는 옵션
-r 디렉토리를 복사할때 사용하는 옵션

 

[Local -> Local 파일 복사]

rsync [옵션] [파일네임] [타겟경로]

파일 사이즈가 작아서 압축 옵션 -z 은 제외했고 -a 옵션은 권한유지등 항상 넣어주는게 좋습니다.

 

[Local -> Local 디렉토리 복사]

rsync [옵션] [디렉토리 네임] [타겟경로]

-a 옵션에 -r 옵션도 포함되어 있어서 따로 옵션을 않넣어줘도 됍니다.

 

[Local -> Remote 파일 복사]

rsync [옵션] [파일네임] [계정]@[IP Address]:[타겟 경로]

최초 원격지 전송시 ssh 인증키 교환이 이루어진후 동기화 진행하시면 됍니다.

 

[Local -> Remote 디레토리 복사]

rsync [옵션] [디렉토리 네임] [계정]@[IP Address]:[타겟 경로]

디렉토리 하위 경로까지 포함할 경우 디렉토리 뒤에 testfile/  붙쳐주시면 됍니다.

 

[Remote -> Local 파일 복사]

rsync [옵션] [계정]@[IP Address]:[원본 경로] [타겟 경로]

 

 

[Local -> Local 디레토리 복사]  --exclude 옵션 사용하여 특정 파일 제외

rsync [옵션] --exclude '[제외대상]' [소스 경로] [타겟 경로]

rsync [옵션] --exclude ={'[제외대상]','[제외대상]'} [소스 경로] [타겟 경로]

*.txt 확장자 파일을 제외하고 복사
중괄호를 사용하여 중복패턴 및 파일 제외하고 복사

 

 

 

여기까지 rsync에 대해 기본적인 설치 방법과 패턴에 대해서 알아봤는데

 

사용하는 환경이나 조건에 따라서 패턴은 더 다양하게 사용이 가능합니다.

 

관련 문서나 문헌 참조바랍니다.