project:btsyncforrpi
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
project:btsyncforrpi [2013/07/17 02:09] – [웹서버의 내용을 로컬 PC와 동기화] changwoo | project:btsyncforrpi [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
- | ====== 라즈베리 파이에서 | + | ====== 라즈베리 파이에서 |
===== 시작하기 ===== | ===== 시작하기 ===== | ||
{{http:// | {{http:// | ||
줄 7: | 줄 7: | ||
한편 NAS 같은 장비들도 가정용으로 많이 보급이 되는 추세이고, | 한편 NAS 같은 장비들도 가정용으로 많이 보급이 되는 추세이고, | ||
- | 저도 얼마 전에 라즈베리 파이를 한 대 장만하여 집에 두고 저전력 서버로 사용하고 있습니다. USB로 집에 있는 노트북 하드디스크를 연결해 라즈베리 파이의 적은 저장공간(SDCARD)의 약점을 극복 중이죠. 물론 이런 싸구려(? | + | 저도 얼마 전에 라즈베리 파이를 한 대 장만하여 집에 두고 저전력 서버로 사용하고 있습니다. USB로 집에 있는 노트북 하드디스크를 연결해 라즈베리 파이의 적은 저장공간(SDCARD)의 약점을 극복 중이죠. 물론 이런 싸구려(? |
- | 그런데 아주 | + | 하지만 지나칠 수 없는 한 가지 |
- | 현재 저도 드롭박스 서비스를 이용중이지만, | + | 현재 저도 드롭박스 서비스를 이용 중이지만, |
- | 저는 2~3대의 PC를 늘 보유하고 있습니다. | + | 저는 2~3대의 PC를 보유하고 있고 자주 사용합니다. 최신의 하드웨어는 아니지만, |
문제는 각 장치끼리 그렇게 스마트하게 해 줄 소프트웨어가 없었던 거지요. 그런데 BitTorrent 기술을 응용해 개인이 소유한 장치끼리 공유/ | 문제는 각 장치끼리 그렇게 스마트하게 해 줄 소프트웨어가 없었던 거지요. 그런데 BitTorrent 기술을 응용해 개인이 소유한 장치끼리 공유/ | ||
줄 303: | 줄 303: | ||
stop) | stop) | ||
echo -n " | echo -n " | ||
- | start-stop-daemon --stop --exec $DAEMON | + | start-stop-daemon --stop |
echo " | echo " | ||
;; | ;; | ||
줄 332: | 줄 332: | ||
$ sudo chown root:root / | $ sudo chown root:root / | ||
$ sudo chmod 755 / | $ sudo chmod 755 / | ||
+ | | ||
+ | ==== 업데이트 스크립트 제작 ==== | ||
+ | btsync가 자주 업데이트되므로 업테이트 될 때 마다 쉽게 업데이트하도록 스크립트를 만듭니다. | ||
+ | <code bash update_btsync> | ||
+ | #!/bin/bash | ||
+ | if [ `whoami` != " | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | echo " | ||
+ | mkdir ./ | ||
+ | wget -O - http:// | ||
+ | cp btsync_update_tmp/ | ||
+ | rm -fr btsync_update_tmp | ||
+ | |||
+ | echo " | ||
+ | </ | ||
==== 동작 테스트 ==== | ==== 동작 테스트 ==== | ||
줄 466: | 줄 484: | ||
{{ : | {{ : | ||
- | 싱크가 다 끝나면 클라이언트 쪽에서도 웹서버를 켜고 위키에 접속해 봅니다. 데스크탑에서 문서를 수정해 보고, 그것이 서버로도 반영되는지 확인해 봅니다. | + | 싱크가 다 끝나면 클라이언트 쪽에서도 웹서버를 켜고 위키에 접속해 봅니다. 데스크탑에서 문서를 수정해 보고, 그것이 서버로도 반영되는지 확인해 봅니다. 실제로 저는 이 문장부터는 데스크탑에서 작성 중이랍니다. 믿어주세요 :-) 역시 데스크탑의 성능이 월등하군요. 작업하기 훨씬 더 쾌적합니다. 일단 데이터가 다 싱크된 후에는 그렇게 많은 정보가 변화하지 않으므로 잠깐잠깐 기다려주면 금방 싱크가 유지됩니다. 만일 일이 생겨 다른 장비를 가지고 어디를 가든지 인터넷과 연결되어 있으면 최소한 라즈베리 파이의 서버를 통해 싱크를 맞출 수 있습니다. |
- | ===== 문제 해결 | + | 이제 라즈베리 파이가 재부팅되면 btsync도 자동으로 실행되도록 처리하기만 하면 됩니다. |
+ | $ sudo update-rc.d btsync defaults | ||
+ | |||
+ | |||
+ | ==== 문제 해결 ==== | ||
저도 싱크가 가능하도록 만들기 위해서 꽤 시행착오를 했습니다. 시행착오 중 알게 된 사항을 같이 기록합니다. | 저도 싱크가 가능하도록 만들기 위해서 꽤 시행착오를 했습니다. 시행착오 중 알게 된 사항을 같이 기록합니다. | ||
* 소프트 링크는 지원되지 않습니다. '' | * 소프트 링크는 지원되지 않습니다. '' | ||
줄 474: | 줄 496: | ||
* 싱크하려는 디렉토리는 btsync의 쓰기 권한이 반드시 허용되어 있어야 합니다. | * 싱크하려는 디렉토리는 btsync의 쓰기 권한이 반드시 허용되어 있어야 합니다. | ||
* 싱크되지 않는다면 ''/ | * 싱크되지 않는다면 ''/ | ||
- | * 혹여 이전부터 BitTorrentSync를 알고 계신 분들 중에 " | + | * 혹여 이전부터 BitTorrentSync를 알고 계신 분들 중에 " |
+ | * 새롭게 싱크를 받은 쪽에서도 권한 문제는 중요합니다. 언제든 웹서버가 올바르게 파일을 읽을 수 있는지, 또 기록을 해야 할 곳에는 기록을 할 수 있는지 체크하세요. | ||
+ | |||
+ | === 싱크된 파일의 소유권 및 권한 문제 === | ||
+ | 서로 다른 시스템간에 파일이 오가는 것이므로 소유권과 권한 문제가 야기될 수 있습니다. 이렇게 되면 위키 프로그램이 올바르게 데이터를 읽고 쓰기가 어려워집니다. 이 경우 싱크를 맞추는 시스템끼리 서로 계속 소유권과 권한을 확인하여 수정하는 수 밖에 없습니다. BitTorrentSync가 알아서 맞춰 주면 좋겠습니다. | ||
+ | |||
+ | 도쿠위키 디렉토리에 다음과 같이 쉘 스크립트를 작성합니다. | ||
+ | <code bash make_ready.sh> | ||
+ | # | ||
+ | if [ $HOSTNAME = " | ||
+ | DOKUROOT=/ | ||
+ | /bin/chown changwoo: | ||
+ | elif [ $HOSTNAME | ||
+ | DOKUROOT=/ | ||
+ | /bin/chown changwoo: | ||
+ | elif [ $HOSTNAME = " | ||
+ | DOKUROOT=/ | ||
+ | /bin/chown -R _www:_www $DOKUROOT/ | ||
+ | fi | ||
+ | #echo $DOKUROOT | ||
+ | /bin/chmod -R 777 $DOKUROOT/ | ||
+ | </ | ||
+ | |||
+ | '' | ||
+ | |||
+ | $ chmod a+x make_ready.sh | ||
+ | |||
+ | 그리고 각 시스템이 N분마다 이 스크립트를 실행하도록 만듭니다. | ||
+ | $ sudo crontab -e | ||
+ | */N * * * * < | ||
+ | N을 적절 | ||
+ | 히 숫자로 바꾸어주세요. | ||
+ | |||
+ | ===== 마무리 ===== | ||
+ | 최신 P2P 기술인 BitTorrent를 응용한 데이터 동기화 프로그램인 BitTorrentSync를 이용하여 라즈베리 파이 웹서버의 데이터를 동기화시켜 보았습니다. 라즈베리 파이 웹서버는 아주 저렴한 가격으로 쉽게 웹서버를 구축할 수 있게 해 주었습니다. 그러나 기기 자체의 퍼포먼스가 그렇게 좋지 않고, 견고한 데이터의 안정성을 보장해 주지 못합니다. 그렇기 때문에 간단한 작업을 하더라도 병목 현상이 잦은데다, | ||
+ | |||
+ | 이렇게 열악한 라즈베리 파이 서버에 BitTorrentSync를 접목시키면 웹서버의 데이터를 여러 벌 분산시켜 보관할 수 있습니다. 물론 드롭박스나 엔드라이브 같은 전문적인 서비스의 안정성에 비할 바는 아닙니다만, | ||
+ | |||
+ | 물론 BitTorrentSync가 완벽한 대안은 아닙니다. 싱크가 잘 된다고 방심하시면 절대 안 됩니다. 반드시 평소 해 오시던 백업과 혼용하세요. BitTorrentSync는 아직 시험적인 서비스에 불과합니다. 참신하고 혁신적인 서비스이지만 조금 더 지켜봐야 할 겁니다. 한편 제가 예를 든 도쿠위키의 핵심 데이터는 잘 정리해서 압축하면 그렇게 많은 용량을 차지하지 않습니다. 대부분의 개인 웹서버의 데이터는 이럴 것입니다. 이렇게 스냅샷을 만들어 클라우드 스토리지 서비스와 혼용하면 더욱 이상적으로 웹서버 데이터를 유지관리하실 수 있으리라 생각합니다. | ||
+ | |||
+ | ===== 참고할 만한 문서들 ===== | ||
+ | * [[project: |
project/btsyncforrpi.1374026975.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)