爽玩dropbox2:服务器安装dropbox,实现异地备份。

dropbox的一大作用就是同步+备份,一般来说,这功能会被用于不同台式机,笔记本或者智能手机之间的文件同步,但是有没有想过,其实这也可以用于服务器,包括dedicated server和vps。

也就是说,只要能够在没有安装xserver的linux/unix服务器上,安装,特别是绑定dropbox客户端就可以了。

网上已经有很多人实现了。dropbox的论坛,则提供了针对现在流行的主要linux发行版的安装包。只需要按照教程做就可以了。

英文的官方wiki在这里,这个应该是经常更新的,建议保留。我相信能用linux server的人,至少能够在计算机辅助下,看懂英文,所以我就不翻译了。更何况,这里有一篇转贴的中文教程。他这个可能比较早,安装完成之后,程序没有自动报出需要复制粘贴到别处的浏览器里访问的捆绑链接,类似这样:

This client is not linked to any account…
Please visit https://www.dropbox.com/cli_link?host_id=7d44a557aa58f285f2da0x67334d02c1 to link this machine.

新的安装器只有在出现错误的时候,才需要使用dbreadconfig.py这个文件来hackdropbox的sqlite数据库,取出捆绑id,然后就像中文教程里边说的从第5步开始做。

安装成功之后,有两种用法:

1、直接同步文件。可以多服务器之间同步+备份,也可以和台式机上的开发环境同步。

需要同步的目录,直接用符号链接,和dropbox的默认同步目录(~/Dropbox)关联即可。

比如要备份/var/www这个目录

$ cd ~/Dropbox
$ ln -s /var/www web_backup

这就可以了,或者要备份/etc目录(不要用Windows 的思维来备份Linux,只要不乱故意删除什么,linux系统自己很难坏的,所以只要备份自己的配制文件, 比如 apache 的配制等/etc下的设置文件。)

$ cd ~/Dropbox
$ ln -s /etc etc_backup

2、只同步压缩过的备份文件(这里是某前辈提供的代码,他用的linode的VPS)

【1】每月备份 monthly-backup-linode-to-dropbox.sh,产生 Linode-Backup-201001.tgz, Linode-Backup-201002.tgz 这种备份文件,每月一个。

#!/bin/sh
FILE=/tmp/Linode-Backup-<code>date+'%Y%m'</code>.tgz
tar czf $FILE --exclude='<em>.exe' --exclude='</em>.tgz' /www/conf/scripts</p>

<h3>这里可以加入你想备份的所有目录。exclude选项会去掉相应的文件或目录</h3>

<p>mv $FILE ~username/Dropbox/Linode</p>

<h3>~username/Dropbox是你的dropbox目录,Linode是你要存放备份文件在DropBox中的子目录

数据库的话,如果是mysql,mysqldump;如果是postgresql,pg_dumpall。tar有个–exclude-from参数,指定一个文件做参数,在这个文件里把目录名写上即可,每个文件或目录名单独占一行,就不会把他们打包压缩。

【2】最新备份linode-snapshot-to-dropbox.sh(可以每天、或者每周运行),只产生一个文件: Linode-SnapShot-Full.tgz

#!/bin/sh
FILE=/tmp/Linode-SnapShot-Full.tgz
tar czf $FILE /www/conf/scripts
mv $FILE ~username/Dropbox/Linode

【3】然后在 crontab 加入如下行 (其中xxxxx 是这些脚本的绝对路径名)

58 23 * * * [ <code>date -d tomorrow +%d</code> -eq '01' ] &amp;&amp; /xxxxx/monthly-backup-linode-to-dropbox.sh
30 23 * * * /xxxxx/linode-snapshot-to-dropbox.sh

从此,你的dropbox账号每月月末的最后2分钟,会产生当月的备份。
并且每天都会更新当前的最新备份。通常来说备份出来的文件名称要打日期错后再传,不然备份到一半拓机就不好了,不过dropbox有历史记录和垃圾箱,比起他的备份方法好一些。

ps,如果不用dropbox的话,会使用类似下边的代码(由另一位前辈提供):

tar -cpzvf backup.tar.gz /xxx (要备份的目录)
scp ./backup.tar.gz root@another-vps.com:/data

但是这里边都没有设计数据库的备份代码,那个我认为用php备份出来比较好。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>