본문 바로가기

IT

Rsync로 원격 서버 동기화

Rsync는 로컬 디렉토리 간의 복사뿐 아니라 네트워크를 통한 원격 서버와의 동기화에도 매우 유용합니다. 특히 서버 운영, 데이터 백업, 개발 환경 배포 등에 자주 활용되며, SSH와 결합하면 보안까지 확보할 수 있습니다. 오늘은 Rsync를 이용해 원격 서버와 데이터를 동기화하는 방법을 알아보겠습니다.

1. 기본 개념

원격 서버 동기화는 로컬에서 원격 서버로 데이터를 전송하거나, 반대로 원격 서버의 데이터를 로컬로 가져오는 작업을 의미합니다. Rsync는 SSH 프로토콜을 이용해 데이터를 암호화하여 전송하기 때문에 안전하게 파일을 주고받을 수 있습니다.

2. 원격 서버로 데이터 전송하기

다음 예시는 로컬의 /data/ 디렉토리를 원격 서버(아이디: user, 호스트: server.com)의 /backup/ 디렉토리로 동기화하는 명령입니다.

 
rsync -avz /data/ user@server.com:/backup/

옵션 설명:

  • -a : 아카이브 모드 (파일 권한, 소유권, 심볼릭 링크 보존)
  • -v : 진행 상황 출력
  • -z : 데이터 전송 시 압축하여 속도 향상

3. 원격 서버에서 데이터 가져오기

반대로 원격 서버에 있는 데이터를 로컬로 가져오려면 경로 위치만 바꿔주면 됩니다.

 
rsync -avz user@server.com:/backup/ /data/

이 경우 원격의 /backup/ 폴더에 있는 내용이 로컬 /data/ 디렉토리로 동기화됩니다.

4. SSH 키 인증으로 자동화

매번 비밀번호를 입력하는 것은 번거롭습니다. 이를 해결하려면 SSH 키 인증을 설정하면 됩니다.

 
ssh-keygen -t rsa ssh-copy-id user@server.com

이렇게 하면 비밀번호 입력 없이도 rsync 명령을 실행할 수 있어, 크론(cron) 작업으로 자동화하기 좋습니다.

5. 자동 백업 예시 (크론 설정)

매일 새벽 2시에 원격 서버에 데이터를 백업하려면 아래와 같이 크론탭에 등록할 수 있습니다.

 
0 2 * * * rsync -avz /data/ user@server.com:/backup/ >> /var/log/rsync_remote.log 2>&1

이렇게 하면 자동으로 동기화가 이루어지고, 로그 파일에 결과가 기록됩니다.

마무리

Rsync는 단순 복사 명령어를 넘어 원격 서버와의 안정적인 동기화까지 지원합니다. SSH와 함께 사용하면 보안 문제까지 해결할 수 있어 실무 환경에서 가장 널리 쓰이는 방법 중 하나입니다. 주기적인 백업, 서버 간 데이터 동기화, 개발 환경 배포 등 다양한 상황에서 활용해 보시길 추천드립니다.