사용자 도구

사이트 도구


project:btsyncforrpi

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
project:btsyncforrpi [2013/07/17 02:52] – [라즈베리 파이에서 BittorrentSync로 데이터 동기화하기] changwooproject:btsyncforrpi [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1
줄 303: 줄 303:
   stop)   stop)
         echo -n "Stopping $DESC: "         echo -n "Stopping $DESC: "
-        start-stop-daemon --stop --exec $DAEMON+        start-stop-daemon --stop --user $DAEMON_USER --pidfile $PIDFILE --exec $DAEMON
         echo "$NAME."         echo "$NAME."
         ;;         ;;
줄 332: 줄 332:
   $ sudo chown root:root /etc/init.d/btsync   $ sudo chown root:root /etc/init.d/btsync
   $ sudo chmod 755 /etc/init.d/btsync   $ sudo chmod 755 /etc/init.d/btsync
 +  
 +==== 업데이트 스크립트 제작 ====
 +btsync가 자주 업데이트되므로 업테이트 될 때 마다 쉽게 업데이트하도록 스크립트를 만듭니다.
 +<code bash update_btsync>
 +#!/bin/bash
 +if [ `whoami` != "root" ]; then
 +        echo "Superuser acceess required!"
 +        exit 1
 +fi
 +
 +echo "Beginning update..."
 +mkdir ./btsync_update_tmp
 +wget -O - http://btsync.s3-website-us-east-1.amazonaws.com/btsync_arm.tar.gz | tar xz -C ./btsync_update_tmp
 +cp btsync_update_tmp/btsync /usr/local/bin
 +rm -fr btsync_update_tmp
 +
 +echo "Update complete!"
 +</code>
  
 ==== 동작 테스트 ==== ==== 동작 테스트 ====
줄 467: 줄 485:
  
 싱크가 다 끝나면 클라이언트 쪽에서도 웹서버를 켜고 위키에 접속해 봅니다. 데스크탑에서 문서를 수정해 보고, 그것이 서버로도 반영되는지 확인해 봅니다. 실제로 저는 이 문장부터는 데스크탑에서 작성 중이랍니다. 믿어주세요 :-) 역시 데스크탑의 성능이 월등하군요. 작업하기 훨씬 더 쾌적합니다. 일단 데이터가 다 싱크된 후에는 그렇게 많은 정보가 변화하지 않으므로 잠깐잠깐 기다려주면 금방 싱크가 유지됩니다. 만일 일이 생겨 다른 장비를 가지고 어디를 가든지 인터넷과 연결되어 있으면 최소한 라즈베리 파이의 서버를 통해 싱크를 맞출 수 있습니다.  싱크가 다 끝나면 클라이언트 쪽에서도 웹서버를 켜고 위키에 접속해 봅니다. 데스크탑에서 문서를 수정해 보고, 그것이 서버로도 반영되는지 확인해 봅니다. 실제로 저는 이 문장부터는 데스크탑에서 작성 중이랍니다. 믿어주세요 :-) 역시 데스크탑의 성능이 월등하군요. 작업하기 훨씬 더 쾌적합니다. 일단 데이터가 다 싱크된 후에는 그렇게 많은 정보가 변화하지 않으므로 잠깐잠깐 기다려주면 금방 싱크가 유지됩니다. 만일 일이 생겨 다른 장비를 가지고 어디를 가든지 인터넷과 연결되어 있으면 최소한 라즈베리 파이의 서버를 통해 싱크를 맞출 수 있습니다. 
 +
 +이제 라즈베리 파이가 재부팅되면 btsync도 자동으로 실행되도록 처리하기만 하면 됩니다.
 +  $ sudo update-rc.d btsync defaults
 +
  
 ==== 문제 해결 ==== ==== 문제 해결 ====
줄 476: 줄 498:
   * 혹여 이전부터 BitTorrentSync를 알고 계신 분들 중에 "Destination folder cannot be identified. Would you like to reset ownership?"라는 에러를 만나는 분이 있을지 모르겠습니다. 이 경우 싱크하려는 디렉토리에서 숨겨진 파일인 '.SyncID', '.SyncIgnore' 파일을 삭제하면 됩니다((http://forum.bittorrent.com/topic/17196-destination-folder-cannot-be-identified-would-you-like-to-reset-ownership)).   * 혹여 이전부터 BitTorrentSync를 알고 계신 분들 중에 "Destination folder cannot be identified. Would you like to reset ownership?"라는 에러를 만나는 분이 있을지 모르겠습니다. 이 경우 싱크하려는 디렉토리에서 숨겨진 파일인 '.SyncID', '.SyncIgnore' 파일을 삭제하면 됩니다((http://forum.bittorrent.com/topic/17196-destination-folder-cannot-be-identified-would-you-like-to-reset-ownership)).
   * 새롭게 싱크를 받은 쪽에서도 권한 문제는 중요합니다. 언제든 웹서버가 올바르게 파일을 읽을 수 있는지, 또 기록을 해야 할 곳에는 기록을 할 수 있는지 체크하세요.   * 새롭게 싱크를 받은 쪽에서도 권한 문제는 중요합니다. 언제든 웹서버가 올바르게 파일을 읽을 수 있는지, 또 기록을 해야 할 곳에는 기록을 할 수 있는지 체크하세요.
 +
 +=== 싱크된 파일의 소유권 및 권한 문제 ===
 +서로 다른 시스템간에 파일이 오가는 것이므로 소유권과 권한 문제가 야기될 수 있습니다. 이렇게 되면 위키 프로그램이 올바르게 데이터를 읽고 쓰기가 어려워집니다. 이 경우 싱크를 맞추는 시스템끼리 서로 계속 소유권과 권한을 확인하여 수정하는 수 밖에 없습니다. BitTorrentSync가 알아서 맞춰 주면 좋겠습니다.
 +
 +도쿠위키 디렉토리에 다음과 같이 쉘 스크립트를 작성합니다.
 +<code bash make_ready.sh>
 +#!/bin/bash
 +if [ $HOSTNAME = "desktop" ]; then
 + DOKUROOT=/home/changwoo/public_html/dokuwiki
 + /bin/chown changwoo:apache -R $DOKUROOT/data $DOKUROOT/conf $DOKUROOT/lib/plugins
 +elif [ $HOSTNAME  = "MiniServer" ]; then
 + DOKUROOT=/home/changwoo/public_html/dokuwiki
 + /bin/chown changwoo:apache -R $DOKUROOT/data $DOKUROOT/conf $DOKUROOT/lib/plugins
 +elif [ $HOSTNAME = "namchang-uui-Mac-mini.local" ]; then
 + DOKUROOT=/Users/changwoo/public_html/dokuwiki
 + /bin/chown -R _www:_www $DOKUROOT/data $DOKUROOT/conf $DOKUROOT/lib/plugins
 +fi
 +#echo $DOKUROOT
 +/bin/chmod -R 777 $DOKUROOT/data $DOKUROOT/conf $DOKUROOT/lib/plugins
 +</code>
 +
 +''$HOSTNAME = "X_HOST"''에 각 서버의 host이름을 적어줍니다. 그리고 ''DOKUROOT'' 변수는 각 시스템에 위치한 도쿠위키의 루트 디렉토리를 적습니다. 물론 이 경로는 링크여도 관계없습니다. 그리고 저장합니다. 파일에 실행 권한을 줍니다.
 +
 +  $ chmod a+x make_ready.sh
 +
 +그리고 각 시스템이 N분마다 이 스크립트를 실행하도록 만듭니다.
 +  $ sudo crontab -e
 +  */N * * * * <PATH_WHERE_SCRIPT_IS>/make_ready.sh
 +N을 적절
 +히 숫자로 바꾸어주세요.
  
 ===== 마무리 ===== ===== 마무리 =====
줄 483: 줄 535:
  
 물론 BitTorrentSync가 완벽한 대안은 아닙니다. 싱크가 잘 된다고 방심하시면 절대 안 됩니다. 반드시 평소 해 오시던 백업과 혼용하세요. BitTorrentSync는 아직 시험적인 서비스에 불과합니다. 참신하고 혁신적인 서비스이지만 조금 더 지켜봐야 할 겁니다. 한편 제가 예를 든 도쿠위키의 핵심 데이터는 잘 정리해서 압축하면 그렇게 많은 용량을 차지하지 않습니다. 대부분의 개인 웹서버의 데이터는 이럴 것입니다. 이렇게 스냅샷을 만들어 클라우드 스토리지 서비스와 혼용하면 더욱 이상적으로 웹서버 데이터를 유지관리하실 수 있으리라 생각합니다. 물론 BitTorrentSync가 완벽한 대안은 아닙니다. 싱크가 잘 된다고 방심하시면 절대 안 됩니다. 반드시 평소 해 오시던 백업과 혼용하세요. BitTorrentSync는 아직 시험적인 서비스에 불과합니다. 참신하고 혁신적인 서비스이지만 조금 더 지켜봐야 할 겁니다. 한편 제가 예를 든 도쿠위키의 핵심 데이터는 잘 정리해서 압축하면 그렇게 많은 용량을 차지하지 않습니다. 대부분의 개인 웹서버의 데이터는 이럴 것입니다. 이렇게 스냅샷을 만들어 클라우드 스토리지 서비스와 혼용하면 더욱 이상적으로 웹서버 데이터를 유지관리하실 수 있으리라 생각합니다.
 +
 +===== 참고할 만한 문서들 =====
 +  * [[project:dokuwikisetting|nginx와 dokuwiki를 이용해 로컬 개인 위키를 구축해보세요!]]
project/btsyncforrpi.1374029541.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki