rsync & iptime cloud service

Dropbox가 2019년 3월부터 무료사용자에 대해 연결기기를 3대로 제한하는 정책을 시행함으로 유료 결제을 높이는 가장 좋은 선택을 하였지만, 나와 같은 라이트 유저에겐 월 10불이라는 금액이 부담되는 금액임은 틀림이 없다.

 

연결기기 제한을 풀 수 있는 2-3불정도의 요금제가 있었다면 고민없이 바로 유료 요금제를 가입했겠지만, 월 10불이라는 요금을 주고 사용하기에는 내가 사용하는 dropbox 서비스에 비해 비싸다는 생각이 머리속에서 계속 맴돌아 끝내 유료 요금제를 가입하지 않고 다른 클라우드를 알아보았지만, 우분투 환경에서 안정적인 클라우드 서비스는 Dropbox밖에 없는 현실이 안타까울 뿐이었다.

 

대안으로 찾은 것이 USB 포트를 가진 iptime 공유기(A1004NS)를 사용할 경우, rsync & ftp 서비스를 사용하여 조금 불편하지만 데이터 백업 및 공유를 할 수 있는 방법이 있어 블로그에 정리하도록 한다.

 

참고로 iptime 공유가 고가 제품이 필요는 없고, USB 포트를 갖고 있는 제품이라면 저가, 고가 제품 상관없이 우분투 환경에서 이 방법을 사용할 수 있다. 공유기 아이피를 직접 사용해도 상관없지만, iptime의 DDNS를 이용하여 iptime.org 또는 ipdisk.co.kr 하위 도메인을 등록하여 사용하는 것이 접근성에 좋다.

iptime 관리자 페이지에 접속하면 위 이미지처럼 USB 및 서비스 관리 항목에서 Cloud 백업 서비스를 확인할 수 있을 것이다. 이 서비스를 이용하려면 iptime 공유에 USB 메모리이든 외장 HDD를 연결해야 사용할 수 있다.

 

iptime cloud 서비스는 rsync 사용하고 있으며, 이것을 사용하여 dropbox 동기화 파일을 iptime cloud 디렉토리에 동기화 시켜, 이 디렉토리를 ftp로 접속하여 사용하려고 한다. 이렇게 하면 dropbox와 동기화 안된 기기는 iptime cloud 또는 ftp에 연결하여 데이터를 가져올 수 있다.

 

iptime cloud client는 윈도우 버전만 제공하기 때문에 우분투 환경에서 rsync 및 crontab을 이용하여 동기화 파일 및 디렉토리를 관리해야 한다.

$ rsync -av --delete --progress --exclude=".dropbox*" <SRCDIR> rsync://<USER>@<IP ADDR>:1873/<DESTDIR>

위의 명령어에서 사용된 옵션은 가장 많이 사용되는 옵션들이며, --delete 및 --exclude 옵션은 다음과 같은 기능을 한다.

  • --delete
    • Source에 존재하지 않는 파일 Destination에 있을 경우 삭제를 결정하는 옵션
  • --exclude
    • Source / Destination 간의 동기화에서 제외 시킬 항목 설정
    • 제외시킬 항목이 많을 경우 파일로 관리가 가능하며 이 파일은 --exclude-from 옵션을 사용

iptime cloud에 패스워드를 설정하였다면, rsync 명령어는 패스워드 입력을 기다리기 때문에 스크립트로 처리할 수 없기 때문에 아래와 같이 RSYNC_PASSWORD 환경변수를 설정한 상태에서 rsync 명령어를 실행해야 한다.

$ export RSYNC_PASSWORD=<YOUR PASSWORD>
$ rsync -av --delete --progress --exclude=".dropbox*" <SRCDIR> rsync://<USER>@<IP ADDR>:1873/<DESTDIR>

다른 방법은 sshpass 패키지가 설치하여, 아래의 명령어 조합으로 패스워드 입력 없이 동기화를 진행할 수 있다.

$ sshpass -p "<YOUR PASSWORD>" rsync -av --delete --progress  --exclude=".dropbox*" <SRCDIR> rsync://<USER>@<IP ADDR>:1873/<DESTDIR>

dropbox 서비스처럼 동기화 디렉토리의 변경 사항을 즉각 동기화 시키면 좋겠지만, 안타깝게도 rsync는 이런 기능을 제공하지 않기 때문에 리눅스 스케쥴링 서비스인 crontab을 이용하여 특정 시간에 우분투와 iptime cloud 간의 동기화를 실행하도록 설정할 수 있다.

$ crontab -e 
...
0 13,18 * * * /home/gon/.config/rsync.sh

crontab의 사용 방법은 아래 글을 참고 하도록 한다. 이것을 참고하여 rsync 스크립트를 만들어 매일 13시, 18시에 동기화를 실행하도록 설정한 것이다.

 

리눅스 반복 예약작업 cron, crond, crontab - 제타위키

1 개요[ | ] cron, cronie, crond, cron daemon, crontab, cron job, crontab job 크론, 크론 데몬, 크론탭, 크론작업, 리눅스 작업 스케줄러 /usr/sbin/crond /usr/bin/crontab 프로세스 예약 데몬 리눅스용 작업 스케줄러 특정

zetawiki.com

다행히 최근 출시되는 앱의 대부분은 FTP 및 삼바를 지원하기 때문에, iptime의 FTP 서비스가 활성화 되어 있다면 ftp를 사용하여 dropbox와 동기화된 파일을 접근할 수 있다. 아래 이미지는 우분투 환경에서 dropbox 동기화 디렉토리와 iptime cloud 디렉토리를 ftp로 연결하여 비교한 것이다.

dropbox 유료 요금제를 가입하여 사용하는 것이 가장 안정적이고 편하게 이용할 수 있지만, 라이트 유저인 나와 같은 경우는 조금 불편하지만 이렇게 dropbox 동기화 파일을 iptime cloud 서비스를 이용하여 dropbox와 동기화 안된 연결기기에서 접근할 수 있게 하였다.

 

우분투 환경이라 CLI로 하였지만 윈도우 환경이라면 iptime cloud client를 설치하여 좀 더 쉽게 구성할 수 있을 것이다.