DROPBOX 定时备份VPS数据方案

首先介绍下这里的主角–Dropbox,DropBox是一款非常好用的免费网络文件同步工具或者说是服务,类似于国内的金山快盘,可以让你轻松备份你电脑上的文件,或者是同步到另外一台电脑。不赘述,直接进入正题:

一、安装配置Dropbox:

Dropbox提供了不同操作系统的客服端,win下的话直接安装设置比较简单,而我们大部分的VPS都是linux操作系统,所以首先我们得在我们的VPS上安装dropbox,根据vps的系统位数选择下列命令下载dropbox:

32位:

 

wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86

 

64位:

 

wget -O dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86_64

 

然后解压:

 

tar xzvf dropbox.tar.gz

 

解压完成后通过以下命令运行dropbox:

 

~/.dropbox-dist/dropboxd &

 

一般情况下因为我们是第一次运行,vps未与你的dropbox账户关联,所以并不会进行同步而是会出现如下提示:

This client is not linked to any account…

 

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

 

这里dropbox已经为你的vps生成的一个host_id,复制上述提示中https://www.dropbox.com/cli_link?host_id=XXXXXXXXXX&cl=en_US这个网址在浏览器打开,然后输入你的帐号密码,dropbox就自动帮你的账户绑定到你的VPS了.

 

二、建立备份

 

首先进入dropbox目录:

 

cd ~/Dropbox

 

在开始备份之前,我们首先要通过ln软链接你所有要备份的目录,例如:

 

ln -s /home/wwwroot/abc

 

ln -s /home/wwwroot/bcd

 

具体目录可以根据自己的实际情况选择添加。

好了,运行下列命令,dropbox便开始同步了:

 

~/.dropbox-dist/dropboxd &

 

三、建立定时备份脚本

 

dropbox默认是进行实时同步的,这肯定非常耗资源,而我们的vps总是越能节省资源越好,所以我们要设置下dropbox只间隔性的一次性同步然后关闭程序节省资源。

首先关掉同步:

 

killall dropbox

 

建立并编写定时同步脚本:

 

vi backup.sh

 

将以下代码写入脚本:

#!/bin/sh

start() {

echo starting dropbox

/root/.dropbox-dist/dropboxd &

}

stop() {

echo stoping dropbox

pkill dropbox

}

case “$1″ in

start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

esac

 

保存后我们要给backup.sh添加执行权限:

 

chmod +x backup.sh

 

然后在var\spool\cron目录下建立root文件或直接运行crontab -e命令添加定时运行:

0 2 * * * sh /root/backup.sh restart

0 3 * * * sh /root/backup.sh stop

这里指的是2点开始同步,3点结束同步,具体运行时间可以根据直接的实际情况调整。而间隔时间也可以根据直接要同步的数据量来进行更改。

 

四、添加数据库备份

 

首先建立并编辑备份命令:

 

vi backupdb.sh

 

将以下脚本写入,具体需要更改的脚本中已经注释得很清楚了:

 

#!/bin/bash

DBName=修改为数据库名

DBUser=修改为数据库用户名

DBPasswd=修改为数据库密码

BackupPath=/root/Dropbox/

LogFile=/root/db.log

DBPath=/usr/local/mysql/var/ #备份的数据库目录

#BackupMethod=mysqldump

#BackupMethod=mysqlhotcopy

#BackupMethod=tar

 

NewFile=”$BackupPath”db$(date +%y%m%d).tgz

DumpFile=”$BackupPath”db$(date +%y%m%d)

OldFile=”$BackupPath”db$(date +%y%m%d –date=’5 days ago’).tgz #自动删除5天前的备份

echo “——————————————-” >> $LogFile

echo $(date +”%y-%m-%d %H:%M:%S”) >> $LogFile

echo “————————–” >> $LogFile

#Delete Old File

if [ -f $OldFile ]

then

rm -f $OldFile >> $LogFile 2>&1

echo “[$OldFile]Delete Old File Success!” >> $LogFile

else

echo “[$OldFile]No Old Backup File!” >> $LogFile

fi

if [ -f $NewFile ]

then

echo “[$NewFile]The Backup File is exists,Can’t Backup!” >> $LogFile

else

case $BackupMethod in

mysqldump)

if [ -z $DBPasswd ]

then

mysqldump -u $DBUser –opt $DBName > $DumpFile

else

mysqldump -u $DBUser -p$DBPasswd –opt $DBName > $DumpFile

fi

tar czvf $NewFile $DumpFile >> $LogFile 2>&1

echo “[$NewFile]Backup Success!” >> $LogFile

rm -rf $DumpFile

;;

mysqlhotcopy)

rm -rf $DumpFile

mkdir $DumpFile

if [ -z $DBPasswd ]

then

mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1

else

mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1

fi

tar czvf $NewFile $DumpFile >> $LogFile 2>&1

echo “[$NewFile]Backup Success!” >> $LogFile

rm -rf $DumpFile

;;

*)

service mysql stop >/dev/null 2>&1

tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1

service mysql start >/dev/null 2>&1

echo “[$NewFile]Backup Success!” >> $LogFile

;;

esac

fi

echo “——————————————-” >> $LogFile

保存后同样要先给backupdb.sh添加执行权限:

chmod +x backupdb.sh

然后在var\spool\cron目录下的root文件或直接运行crontab -e命令添加定时运行:

0 1 * * * sh /root/backupdb.sh

一般我喜欢在dropbox运行前建立数据库备份,而具体时间可以自己调整。

 

最后附上删除卸载dropbox的方法:

killall dropbox

rm -rf .dropbox .dropbox-dist Dropbox dropbox.tar.gz dbmakefakelib.py dbreadconfig.py

评论

此博客中的热门博文

FreeBSD安装Pure-FTPd及user manager for PureFTPd

debian lighttpd php ssl

解决nginx出现File not found的问题