RSS
 

在VPS中使用Dropbox实现定时备份

23 May

作为dropbox的忠实粉丝,偶当然希望我的所有平台上的备份都是用它了
在windows7下我用它,在我的UbuntuDesktop上我用它,最近买了VPS,我还是希望用它.
然后我就去搜索,看看有没有CentOS的解决办法,终于,在官方的wiki里找到了方案

网址是:http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall

参考完成后发现在我的VPS上用起来占用内存较大,在VPS上长期占用肯定不好
所以有了下面的优化解决方案
把官方前面的步骤也顺道放过来

首先先切到root权限并且到用户目录

su - root
cd

然后下载几个必须的东西

wget -O dropbox.tar.gz http://www.dropbox.com/download/?plat=lnx.x86
wget -nd http://dl.dropbox.com/u/6995/dbmakefakelib.py
wget -nd http://dl.dropbox.com/u/6995/dbreadconfig.py

解压

tar -zxof dropbox.tar.gz

获取机器特征,如果运行一会儿后出现

python dbmakefakelib.py

“dropboxd ran for 15 seconds without quitting – success?”

后等15秒就可以了,按ctrl+c退出

现在我们去看一下特征信息是什么,由于官方给的dbreadconfig.py脚本不好使,我们只能手动去看了

cd ~/.dropbox
sqlite3 dropbox.db

执行完毕后会看到类似下面的内容

SQLite version 3.3.6
Enter “.help” for instructions
sqlite>

输入

.dump config

后会看到类似

INSERT INTO “config” VALUES(4, ‘host_id’, ‘VmU2YjA1ZmI3MjU4Yzg21jM0NDFiYTU4ZGM4YjkwZDFhCnAxCi4=
‘);

我们需要的是,下文中的代码里就直接以此特征码举例了

VmU2YjA1ZmI3MjU4Yzg21jM0NDFiYTU4ZGM4YjkwZDFhCnAxCi4=

这个就是产生的机器特征了,拷贝之,然后在sqlite3窗口输入

.exit

退出sqlite

我们继续,要开始进行解码了

echo VmU2YjA1ZmI3MjU4Yzg21jM0NDFiYTU4ZGM4YjkwZDFhCnAxCi4= | base64 -d

会得到一个类似

Ve6b05fb7258c86?441ba58dc8b90d1a
p1
.base64: invalid input

的东西,去掉V后,我们要的是

e6b05fb7258c86?441ba58dc8b90d1a

好了,现在我们该在我们的电脑上去登录下dropbox的网站了,该翻墙的翻墙,该改host的改host
反正就是现在去登录下自己想备份VPS数据的dropbox的帐号先

登录完毕后,我们再访问下

https://www.dropbox.com/cli_link?host_id=<em>HOSTID</em>

其中HOSTID应该用前面产生的那个字串替换
比如替换后的内容应该像下面

https://www.dropbox.com/cli_link?host_id=e6b05fb7258c86?441ba58dc8b90d1a

访问之访问之,访问后应该会有一个dropbox的tip提示绑定成功!

创建dropbox的数据目录,启动dropbox

mkdir ~/Dropbox
~/.dropbox-dist/dropboxd &amp;

我们看看启动了没有

pgrep dropbox

如果启动了会显示PID号,没启动则啥都没有
我这里显示的是

22336

下面该啥了,哦,该把自己的网站需要备份的目录丢到dropbox的数据目录里了
通常第一个要备份的就是网站的页面目录了,里面有不少自己改过的东西呢
假如你的网站目录是在/home/www下的话,那么就建立个链接就完事

cd ~/Dropbox
ln -s /home/www

呼~~~,基本上都完事了,喝口茶先,该优化部分了
下面按照官网wiki的做法就开始做启动脚本了,根据我自己使用的情况来看,dropbox在VPS上长期开着不太合适,140M左右内存占用呢
Dropbox占用内存大小

所以想的是改成计划任务的方式来做了,每天凌晨1点的时候启动dropbox来同步东西,每天凌晨6的时候杀死dropbox的进程,降低内存占用:)

建立一个启动dropbox跟停止dropbox的shell脚本
就放在~/.dropbox/目录中好了

rm -rf ~/.dropbox/dropbox.sh
vi ~/.dropbox/dropbox.sh

出现VI界面,按i键进入编辑模式
然后复制下面内容到VI中按shift+insert键盘粘贴

#!/bin/sh
start() {
        echo starting dropbox
	/root/.dropbox-dist/dropboxd &amp;
}

stop() {
	echo stoping dropbox
	pkill dropbox
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
   restart)
        stop
        start
        ;;
esac

按esc返回命令模式输入:wq保存退出

给权限

chmod 755 ~/.dropbox/dropbox.sh

加入计划任务

crontab -e

在文件末尾追加内容,VI的操作方法前面已经说了,crontab的用法解释可自行google

凌晨1点重新启动dropbox,早上6点停止dropbox

0 1 * * * sh ~/.dropbox/dropbox.sh restart
0 6 * * * sh ~/.dropbox/dropbox.sh stop

好了,基本上大功告成了

你可以手动执行下

sh ~/.dropbox/dropbox.sh restart

或者

sh ~/.dropbox/dropbox.sh stop

看看能否正常的启动和关闭dropbox

应该是没啥问题 ,有什么问题,可以在留言里直接提出哈,看看我能否帮上你

PS:顺带放出我的dropbox的邀请,这样你我都可以增加250M空间了
https://www.dropbox.com/referrals/NTczMzk2OTQ5

使用的标签: centos, dropbox, Linux, Linux, png, sqlite, VPS

相关文章

 
4 Comments

Posted in Linux

 

Tags: , , , , ,

Leave a Reply

 
 
  1. ntsys Windows XP Google Chrome 5.0.342.9

    2010年06月5日 at 00:29

    。。。怪不得上次开了dropbox,vps内存立马就只有一点儿了呢。。。

     
    • FlashSoft Windows 7 Google Chrome 6.0.408.1

      2010年06月5日 at 10:23

      所以搞成计划任务比较合适

       
  2. Windows 7 Mozilla Firefox 3.6

    2010年05月23日 at 23:52

    哈哈哈.完全成功..

     
    • FlashSoft Windows 7 Google Chrome 5.0.375.9

      2010年05月24日 at 08:57

      恭喜恭喜,能装成就好了,哈哈哈~