(centos8) rsync 자주 사용되는 명령어(옵션)
rsync (Remote Sync)는 site간의 파일 또는 디렉토리의 동기화를 위한 유틸리티입니다.
서버파일 명령어인 scp는 모든 파일을 전송하는 반면, rsync는 변경된 파일만 전송을 함으로써 더 빠르고 효율적인 전송이 가능합니다.
백업으로도 많이 사용되고, 소스등을 동기화 하는 식으로도 많이 사용됩니다.
rsync 설치
* 설치
$ yum install rsync
rsync는 873 포트를 사용합니다. 때문에 방화벽을 사용하신다면 873포트를 허용해야 합니다.
firewall-cmd 명령어로 추가 할수도 있지만 저는 vi에서 직접 추가하도록 하겠습니다.
참고로 방화벽을 vi로 직접 추가, 수정을 해주는데 그 이유는 주석등 관리를 위해서 직접하고 있습니다.
$ vi /etc/firewalld/zones/public.xml
<!-- rsync -->
<port protocol="tcp" port="873"/>
$ systemctl restart firewalld
* rsync 명령어 형식
$ rsync [options] [source] [destination]
* 자주사용하는 옵션 설명
$ rsync -avh [source] [destination]
short | long | 설명 |
-a | --archive | 자주 사용하는 옵션을 묶어놓은 옵션(= -rlptgoD) |
-r | --recursive | 하위 디렉토리까지 복사 |
-l | --links | 심볼릭 링크 유지하면서 동기화 |
-p | --perms | 퍼미션 정보 유지하면서 동기화 |
-t | --times | 타임스탬프 유지하면서 동기화 |
-g | --group | 그룹 소유권 보존 |
-o | --owner | 소유권 보존 |
-D | 디바이스 파일 보존 | |
-h | 결과를 사람이 읽기 편한 포맷으로 출력 | |
-v | --verbose | 동기화 시 상세 정보를 표시 |
-q | --quiet | 동기화 시 상세 정보를 표시 하지 않음. |
--delete | 원본 소스에 없는 파일은 백업 서버에서 삭제 | |
--exclude | 제외할 파일 지정 (ex: --exclude='*.cnf' --exclude='abc.php') | |
--include | 포함할 파일 지정(ex: .pdf파일만 전송해라 ==> --include="*/" --include="*.pdf" --exclude="*" ) | |
-n | --dry-run | 실제 파일 복사를 하는것이 아니라, 처리될 대상 파일 목록만 출력 |
-b | --backup | 백업서버에 이미 파일이 존재할경우 백업 디렉토리에 백업 |
-u | --update | 백업서버에 원본보다 최신 파일이 있을 경우 해당 파일은 복사하지 않음. |
-e | ssh를 10000 port를 사용한다면 (ex: -e 'ssh -p 100000') | |
-z | 데이터 파일을 압축 |
rsync.conf 없이 직접 rsync사용하는 방법
* Local(원본)에서 /home을 /backup/home으로 복제
$ rsync -avh /home/ /backup/home
* Local(원본)의 /home을 Remote(백업)(10.10.10.2) /home으로 복제
$ rsync -avh /home 10.10.10.2:/home
#만약, ssh포트가 10000 인경우
$ rsync -avh -e 'ssh -p 10000' /home 10.10.10.2:/homeor]# rsync -avh --rsh='ssh -p10000' /home 10.10.10.2:/home
* Remote(백업)의 /home 파일을 Local(원본)에 복제
$ rsync -avh 10.10.10.2:/home /home
rsync.conf 사용하여 rsync사용하는 방법
rsync.conf 에 원본에 대한 설정을 한 후 별칭을 만들어서 사용하는 방식입니다.
만약 원본서버가 한 대이고, rsync로 땡겨받는 서버가 10대라고 가정한다면,
별칭을 사용하면 대상의 정보(패스 또는 아이피 등)가 변경된다면 conf파일 10대의 서버의 rscync 명령어를 변경하는게 아니라 conf파일 하나만 변경하면 됩니다.
또는 땡겨 받는 곳에서 명령어도 짧아지겠죠.
편하신 방법-설정해서 사용하든, 직접 명령어로 사용하든-으로 사용하시면 됩니다.
* 원본 서버(10.10.10.1)에서...
rsyncd.conf 파일이 없는 경우도 있습니다. 없으면 vi로 새로 작성하시면 됩니다.
$ vi /etc/rsyncd.conf
[test_home]
path = /home/test/
comment = test
uid = root
gid = root
user chroot = yes
max connections = 10
hosts allow = 192.168.0.2,192.168.0.3
exclude=/.ssh
timeout = 600
read only = no
- path : 데이터 원본의 경로를 설정
- comment : 코멘트
- uid : 권한 사용자
- gid : 권한 그룹
- user chroot : yes를 하게 되면 path에 설정한 경로가 최상위 디렉토리가 됨.
- max connections : 최대 허용 접속 수
- host allow : 허용할 아이피, 다수인경우에는 ","로 구분.
192.168.0.0/24 이와 같이 대역을 설정해도 됨 (기술 안해 됨) - exclude : 전송할때 제외할 형식(파일 or 디렉토리)
- timeout : 단위는 초. 600인경우에는 600초 동안 응답이 없으면 작업을 종료해라.
- read only : 읽기 전용 여부(no는 쓰기까지 가능)
rsyncd 재실행하여 설정 적용합니다.
$ systemctl restart rsyncd
* 백업 서버(10.10.10.2)에서....
$ rsync -avh root@10.10.10.1::test_home /home/okems/public_svn/
주의해야 할 점은 ::test_home
부분입니다.
콜론(:) 이 두 개입니다. 설정하지 않은 방법에서는 콜론(:)이 한 개였죠! 콜론(:) 두 개입니다!!!!
'OS > Linux' 카테고리의 다른 글
[CentOS7] 랜카드 추가(2개)로 서버간 통신 속도 10배 속도 내기 (0) | 2022.10.26 |
---|---|
[CentOS7] LVM이용한 하드디스크 추가 (0) | 2022.10.25 |
댓글
이 글 공유하기
다른 글
-
[CentOS7] 랜카드 추가(2개)로 서버간 통신 속도 10배 속도 내기
[CentOS7] 랜카드 추가(2개)로 서버간 통신 속도 10배 속도 내기
2022.10.26 -
[CentOS7] LVM이용한 하드디스크 추가
[CentOS7] LVM이용한 하드디스크 추가
2022.10.25