OS/Linux

[Linux] rsync란? rsync로 디렉터리 동기화하기

yeit 2024. 3. 29. 17:42
728x90

 

 

rsync(Remote Sync)란?

  • 데이터 동기화 및 파일 전송을 위한 유닉스 및 리눅스 시스템에서 널리 사용되는 도구
  • TCP 873번 포트 사용
  • 파일 및 디렉터리를 효율적으로 동기화하거나 파일 백업 또는 대용량 파일 전송을 할 때 사용된다.

 

rsync 장점

  • rsync는 변경된 부분만 전송함으로써 네트워크 대역폭을 절약할 수 있다.
  • 데이터를 압축하여 전송 속도를 높일 수 있다.
  • SSH 프로토콜과 함께 사용하여 데이터를 암호화할 수 있어 보안을 강화할 수 있다.
  • scp보다 효율적이다.
    • scp란? 파일 및 디렉터리를 안전하게 복사하는 명령어
    • scp는 전체 파일을 복사하는 반면, rsync는 변경된 부분만을 전송하기 때문에

 

 

rsync 실습

server1의 /home/test/ 디렉토리를 server2의 /home/test/로 동기화 하는 실습을 살펴보자.

 

 

실습 구성 환경

  • server1 : centos-7.8, 175.45.204.X
  • server2 : centos-7.8, 175.45.203.X

 

방화벽

  • server1 인바운드 : My IP 22포트
  • server1 아웃바운드 : server2 IP 22 포트, server2 IP 873 포트
  • server2 인바운드 : server1 IP 22 포트, server IP 873 포트

 

rsync로 디렉터리 동기화

 

1. 서버 1에서  rsync 명령을 사용하여, 서버 1의 데이터를 서버 2로 동기화

# rsync -avz -e ssh /home/test/ root@<server2 IP>:/home/test/

  • -a 또는 -archive : 아카이브 모드로 작동. 소스 디렉토리의 모든 파일 및 하위 디렉토리를 보존하며 파일 권한, 소유자, 그룹 및 타임스탬프를 유지한다.
  • -v 또는 -verbose : 자세한 출력을 활성화하면 rsync 작업의 진행 상황이 표시된다.
  • -z 또는 -compress : 데이터를 압축하여 전송. 네트워크 대역폭을 절약할 수 있다.
  • -e ssh : SSH 프로토콜을 사용하여 데이터를 전송

추가) SSH 기본 포트가 22가 아닐 경우

rsync -avz -e 'ssh -p 2222' /home/test/ root@<server2 IP>:/home/test/

 

 

2. 서버 2에서 동기화된 디렉터리 확인

 

 

 

728x90