다수의 Server들을 운영하다보면 각종 설정 파일, 소스, 이미지 파일들의 동기화 시켜줄 일이 생깁니다. 이럴때 유용한 rsync에 대한 글입니다.(출처는 IBM DeveloperWorks입니다.)

원문 : Speaking UNIX: rsync 고급 애플리케이션

 현재 재직중인 회사에서도 DNS, Web server 등에서 rsync를 이용해서 동기화를 하고 있더군요.

다수의 시스템을 동기화하는 작업은 매우 힘든 일입니다. 다행히도 rsync라는 강력한 도구가 있어서 이러한 작업을 쉽게 할 수 있습니다.

지난 20년 동안 컴퓨터 네트워크의 사용이 폭발적으로 늘어났다. 인터넷의 성장과 그에 따른 국내 및 해외 백본 인프라스트럭처에 대한 투자 그리고 네트워킹 및 컴퓨팅 하드웨어 가격의 급격한 하락으로 인해 네트워크 사용량이 대폭 늘어났다. 오늘날 네트워크는 보편화되고 일반화되었으며 애플리케이션 여전히 대규모의 네트워크와 빠른 전송 속도를 필요로 한다. 인터넷은 몇 대 안되는 작은 워크스테이션에서 비롯되었지만 이제 인터넷 및 그와 유사한 서비스로 인해 셀 수 없이 많은 컴퓨터가 서로 연결되고 있다.

자주 사용하는 약어
  • FTP: File Transfer Protocol
  • WebDAV: Web-based Distributed Authoring and Versioning

같은 기간 동안 UNIX®도 성장을 해서 점차 유익한 네트워킹 소프트웨어와 보조를 맞추게 되었다. FTP는 시스템 간에 파일을 공유하기 위한 첫 번째 도구 중 하나이며 여전히 널리 사용되고 있다. "원격 복사(remote copy)"를 의미하는 rcp는 FTP를 개선한 것이며 기존의 cp 유틸리티와 유사하지만 시스템 간에 파일을 복사한다는 점이 다르다. rcp를 기반으로 한 rdist는 한 시스템에서 다수의 시스템으로 파일을 자동으로 분배한다.

오늘날 rcprdist와 같은 유틸리티는 보안상의 결함이 있어 더 이상 사용하지 않는다. 대신 scp를 사용한다. FTP를 여전히 널리 사용하듯이 FTP에서 보안을 강화한 SFTP(Secure FTP)도 가능하면 사용해야 한다. 달리 선택할 수 있는 도구에는 WebDAV와 BitTorrent™와 같은 것도 있다. 물론 시스템이 많아 질수록 모든 시스템을 동기화하거나 최소한 특정 상태로 유지하는 것이 더욱 어려워지며 사용자가 직접 솔루션을 작성하지 않는 한 scp와 WebDAV는 원하는 결과를 제공하지 않는다.

파일을 배포하는 데 가장 좋은 도구는 rsync이다. rsync는 전송이 중단되고 나서도 다시 재개할 수 있고 소스와 대상을 비교하여 다른 파일만을 전송하며 전체 백업이나 증분 백업을 할 수도 있다. 더욱이 rsync는 Mac OS X는 물론 모든 UNIX 계열에서 사용할 수 있으며 따라서 사실상 모든 시스템을 서로 편리하게 연결할 수 있다.

rsync에 대한 몇 가지 일반적인 사용례를 검토한 후에 보다 우수한 애플리케이션을 살펴보도록 하자. 여기서 사용한 데모 시스템은 Mac OS X 버전 10.5 Leopard(FreeBSD 변종) 및 Ubuntu Linux® 버전 8이다. 다른 운영 체제를 사용하거나 그럴 가능성이 있는 경우 여기에 있는 대부분의 예제를 포팅할 수 있으며 사용 시스템의 rsync 매뉴얼 페이지를 검토하여 동작이 제대로 되는지 확인한다.


+ Recent posts