使用 Dropbox 每天自动备份

注册 Dropbox

Dropbox 是一个美国的在线网盘,默认提供了2G的空间,同时可以通过邀请其他朋友使用的手段增加容量。

为什么使用这个,主要是 VPS 到 Dropbox 备份可以到 1M 的真实传输速度,加上可以加容量,所以是非常理想的备份方式。

点击 注册 Dropbox 并登录到 Dropbox 网页。

BTW:淘宝上也有人提供扩容到20G的服务,风险自行承担。

Dropbox 将申请150M内存,实际消耗17M内存,所以请注意控制内存。

 

 安装 Dropbox 客户端

打开 putty 执行如下命令安装,如果是32位的系统,采用如下命令。执行完毕后,请不要再执行下面给64位系统执行的命令:

cd ~ && wget -O - https://www.dropbox.com/download?plat=lnx.x86 | tar xzf -

64位系统的采用如下命令,

 cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -

执行结果如下所示:

root@241541:~# cd ~ && wget -O - https://www.dropbox.com/download?plat=lnx.x86 | tar xzf -
--2012-02-22 06:44:40--  https://www.dropbox.com/download?plat=lnx.x86
Resolving www.dropbox.com... 199.47.217.171, 199.47.216.170, 199.47.216.171, ...
Connecting to www.dropbox.com|199.47.217.171|:80... connected.
HTTP request sent, awaiting response... 302 FOUND
Location: https://dl-web.dropbox.com/u/17/dropbox-lnx.x86-1.2.52.tar.gz [following]
--2012-02-22 06:44:40--  https://dl-web.dropbox.com/u/17/dropbox-lnx.x86-1.2.52.tar.gz
Resolving dl-web.dropbox.com... 107.20.132.92, 107.20.138.135, 107.20.170.126, ...
Connecting to dl-web.dropbox.com|107.20.132.92|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 15794278 (15M) [application/x-tar]
Saving to: `STDOUT'

100%[======================================>] 15,794,278   893K/s   in 15s     

2012-02-22 06:44:57 (1.01 MB/s) - written to stdout [15794278/15794278]

看到类似信息,表示安装完成。

 设置帐号

执行如下命令开始设置帐号

~/.dropbox-dist/dropboxd

当看到

Please visit https://www.dropbox.com/cli_link?host_id=xxx&cl=en_US to link this machine.

的提示时,复制里面https的链接地址使用浏览器打开,会出现Dropbox的密码框,输入你刚刚注册的密码,等到 putty 里面出现

Client successfully linked, Welcome xxx!

的提示即可完成设置。完成后,使用 Ctrl+C 键中断运行。

完整如下所示:

root@241541:~# ~/.dropbox-dist/dropboxd 
This client is not linked to any account...
Please visit https://www.dropbox.com/cli_link?host_id=db0a5acabdf1fba62f360ffb8ebe910e&cl=en_US to link this machine.
This client is not linked to any account...
Please visit https://www.dropbox.com/cli_link?host_id=db0a5acabdf1fba62f360ffb8ebe910e&cl=en_US to link this machine.
This client is not linked to any account...
Please visit https://www.dropbox.com/cli_link?host_id=db0a5acabdf1fba62f360ffb8ebe910e&cl=en_US to link this machine.
This client is not linked to any account...
Please visit https://www.dropbox.com/cli_link?host_id=db0a5acabdf1fba62f360ffb8ebe910e&cl=en_US to link this machine.
Client successfully linked, Welcome guest!

开始使用

完成以上设置后,会在当然的目录下出现 Dropbox 目录,这个目录就是同步目录,当在这个目录下放置的任何文件都会同步到 Dropbox 网盘上。

root@241541:~# ls
Dropbox
root@241541:~# cd Dropbox/
root@241541:~/Dropbox# ls
Getting Started.pdf  Photos  Public

第一次测试: 在Dropbox目录下创建一个内容为 Hello 的 a.txt 文件。

root@241541:~/Dropbox# echo "Hello" > a.txt

运行同步程序

root@241541:~/Dropbox# ~/.dropbox-dist/dropboxd

打开Dropbox网页的 Files ,就会看到你的文件了。 输入 Ctrl+C 中断同步,下面开始讲如何配置自动运行同步。

 自动运行 Dropbox

512M内存的VPS请不要自动启动服务,需要时,手工运行即可,启动后会太占内存。

到Vps的 /etc/init.d/ 目录下创建 dropbox 文件,文件内容如下,你可以在Windows里面创建好,再使用filezilla上传到 /etc/init.d/ 目录。

#!/bin/bash
# dropbox service
DAEMON=.dropbox-dist/dropbox

start() {
    echo "Starting dropbox..."
    if [ -x /root/$DAEMON ]; then
       HOME="/root" start-stop-daemon -b -o -c root -S -u root -x /root/$DAEMON
    fi
}

stop() {
    echo "Stopping dropbox..."
    HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
    if [ -x /root/$DAEMON ]; then
        start-stop-daemon -o -c root -K -u root -x /root/$DAEMON
    fi
}

status() {
    dbpid=`pgrep -u root dropbox`
    if [ -z $dbpid ]; then
        echo "dropboxd not running."
    else
        echo "dropboxd running (pid $dbpid)"
    fi
}

case "$1" in
  start)
    start
    ;;

  stop)
    stop
    ;;

  restart|reload|force-reload)
    stop
    start
    ;;

  status)
    status
    ;;

  *)
    echo "Usage: /etc/init.d/dropbox {start|stop|reload|force-reload|restart|status}"
    exit 1

esac

exit 0

然后继续执行如下命令,设置自动启动 dropbox 同步服务:

sed -i "s/\r//" /etc/init.d/dropbox 
chmod +x /etc/init.d/dropbox
update-rc.d dropbox defaults
/etc/init.d/dropbox start

执行命令的结果如下所示:

root@241541:~/Dropbox# sed -i "s/\r//" /etc/init.d/dropbox 
root@241541:~/Dropbox# chmod +x /etc/init.d/dropbox
root@241541:~/Dropbox# update-rc.d dropbox defaults
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "zh_CN.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
update-rc.d: warning: /etc/init.d/dropbox missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Adding system startup for /etc/init.d/dropbox ...
   /etc/rc0.d/K20dropbox -> ../init.d/dropbox
   /etc/rc1.d/K20dropbox -> ../init.d/dropbox
   /etc/rc6.d/K20dropbox -> ../init.d/dropbox
   /etc/rc2.d/S20dropbox -> ../init.d/dropbox
   /etc/rc3.d/S20dropbox -> ../init.d/dropbox
   /etc/rc4.d/S20dropbox -> ../init.d/dropbox
   /etc/rc5.d/S20dropbox -> ../init.d/dropbox
root@241541:~/Dropbox# /etc/init.d/dropbox start
Starting dropbox...

现在你的VPS已经可以自动同步 /root/Dropbox 目录下的所有文件了。

 自动每天备份数据库和站点

输入如下命令,创建自动备份脚本,注意脚本中的“数据库密码”需要换成你自己的Mysql数据库密码:

echo '#!/bin/bash' > /etc/cron.daily/dropboxbackup
echo 'tar czf /root/Dropbox/www.tar.gz /var/www' >>/etc/cron.daily/dropboxbackup
echo 'mysqldump -p数据库密码 --all-databases |gzip > /root/Dropbox/mysql.sql.gz' >>/etc/cron.daily/dropboxbackup
chmod +x /etc/cron.daily/dropboxbackup
/etc/init.d/cron restart

执行结果如下

root@241541:~# echo '#!/bin/bash' > /etc/cron.daily/dropboxbackup
root@241541:~# echo 'tar czf /root/Dropbox/www.tar.gz /var/www' >>/etc/cron.daily/dropboxbackup
root@241541:~# echo 'mysqldump -p123456 --all-databases |gzip > /root/Dropbox/mysql.sql.gz' >>/etc/cron.daily/dropboxbackup
root@241541:~# chmod +x /etc/cron.daily/dropboxbackup
root@241541:~# /etc/init.d/cron restart 
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service cron restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the restart(8) utility, e.g. restart cron
cron start/running, process 3094

看到上面的提示,表示自动备份设置完成,然后你可以手工执行下 /etc/cron.daily/dropboxbackup 看看效果。

PS:如果您想和业内技术大牛交流的话,请加qq群(527933790)或者关注微信公众 号(AskHarries),谢谢!

转载请注明原文出处:Harries Blog™ » 使用 Dropbox 每天自动备份

赞 (0)

分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址