[리눅스] rsync 사용법 (파일/디렉토리 복사 및 동기화, 대역폭 제한)
- IT/linux
- 2022. 11. 17. 21:22
rsync 명령어
개념
- Remote Sync의 줄임말
- 원격 또는 로컬에 파일/디렉토리 복사하는 명령어.
- scp / rcp 처럼 리눅스 내장 명령어
- 옵션(네트워크 대역폭 제어, 심볼릭 링크, 권한, 파일 수정일 등을 유지)이 다양
장점
- 효율적인 파일/디렉토리 복사 및 동기화 가능
- 심볼릭 링크, 소유자, 권한, 파일 수정일 등 파일/디렉토리 각종 정보도 복사 가능
- rsync 최초 사용 시 모든 파일/디렉토리를 복사, 그 이후에는 Remote Update 프로토콜을 이용해 변경된 부분만 복사하기에 scp 보다 빠름 (난 동기화 필요 + 큰 파일은 rsync로, 작거나 주기적인 동기화가 필요 없는 1회성 복사는 scp를 사용함)
- 데이터 압축 후 송/수신하기에 적은 대역폭 사용
- 네트워크 대역폭 조절이 가능해 업무 시간에도 적절하게 사용할 수 있음
옵션
-v : verbosity 높이는 옵션, 복사 과정 상세 출력
-z : compress 옵션, 파일 복사 시 압축해서 진행
-h : 읽기 쉬운 형태로 결과 출력
-a (same as -rlptgoD) : archive 모드, 아래의 -rlptgoD 옵션을 적용한것과 같음, symboliclink, 권한, timestamp와 같은 속성들을 그대로 복사
-r : 디렉토리 복사
-l : symboliclink 유지
-p : 권한 유지
-t : 수정시간 유지
-g : 그룹 속성 유지
-o : 소유자 속성 유지
-D (same as --devices --specials) : --devices --specials 옵션과 같음
--devices : root 권한이 필요, Device 관련된 파일 복사 후 생성해줌
--specials : named socket이나 fifo와 같은 특수한 파일 복사
--progress : 진행 상황
--stats : 결과 보고
--delete : 원본 서버에 없는 파일은 백업 서버에서 삭제
--exclude : 제외 파일 지정
--bwlimit : 네트워크 대역폭 제어
--daemon : rsync를 데몬 모드로 실행
--max-size : 지정 크기 이상인 파일 제외 (rsync 2.6.4 버전부터 사용 가능)
--min-size : 지정 크기 이하 파일 제외 (rsync 2.6.7 버전부터 사용 가능)
예제
원격지로 파일 또는 디렉토리 복사(동기화)
#rsync -avzh [파일명 또는 디렉토리명] [USER]@[Remote Server IP]:[PATH]
# 예시
# 파일명 : abc.txt
# 원격지 USER : eloquence
# 원격지 IP : 192.168.0.100
# 원격지 경로 : /home/eloquence/test
#rsync -avzh abc.txt eloquence@192.168.0.100:/home/eloquence/test/
대역폭 제한 설정 후 원격지로 파일 또는 디렉토리 복사(동기화) - 업무 시간 또는 네트워크 부하를 줄이고자 할 때
# rsync -avzh -bwlimit [KByte/s] [파일명 또는 디렉토리명] [USER]@[Remote Server IP]:[PATH]
# 예시
# 파일명 : abc.txt
# 원격지 USER : eloquence
# 원격지 IP : 192.168.0.100
# 원격지 경로 : /home/eloquence/test
# rsync -avzh -bwlimit 1024 abc.txt eloquence@192.168.0.100:/home/eloquence/test // 초당 1MB
# rsync -avzh -bwlimit 1048576 abc.txt eloquence@192.168.0.100:/home/eloquence/test // 초당 1GB
# 참고
1MB = 1024KByte
10MB = 10240KByte
100MB = 102400KByte
200MB = 204800KByte
500MB = 512000KByte
1G = 1048576KByte
2G = 2097152KByte
5G = 5242880KByte
10G = 10485760KByte
'IT > linux' 카테고리의 다른 글
[리눅스] /dev/null Permission denied (0) | 2022.11.24 |
---|---|
[리눅스] stress - CPU, MEMORY, DISK 부하 발생 테스트 (0) | 2022.11.19 |
[리눅스] 계정 nologin (계정 잠금) (0) | 2022.11.13 |
[리눅스] CentOS 8 / RHEL 8 외부 Repository 설정 (0) | 2022.07.05 |
[리눅스] sudo 명령어 안될 때 (is not in the sudoers files) (3) | 2021.09.23 |