昨天把Dropbox装好了,并写了备份的脚本定时执行。之前一直忙着找友链,发外链,都没时间搞备份的事情。而且上次用了Dropbox的API备份由于不能传大文件,所以这次改了用客户端来同步。上次的API设置可参考这里

在linux怎么安装可以看下官方的说明:

首先是下载和解压:

32位系统

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 -

之后第一次运行:

~/.dropbox-dist/dropboxd

这个时候会返回给你一个url,复制到浏览器,确认之后就绑定成功了,马上就开始同步了。现在可以添加同步的目录了:

cd ~/Dropbox
ln -s /home/XXX/backup

当然一直开启同步会占用掉不少内存,所以我们先把同步关了,每天定时开启一会即可:

killall dropbox

我并不建议直接把网站目录加进来,因为同步是双向的,哪天你不小心在某个客户端上把文件删了,那么马上你的站也就挂了。所以我建议把网站复制出来,然后对副本进行备份。我的方案是每天复制整站到一个备份目录进行同步,然后每周把整站打包备份到Dropbox,这样也可以回滚到比较旧的版本,当然如果Dropbox的空间不够,你可以同步频率降低并定期删除不要的备份文件。我建议你用虚拟机去邀请注册Dropbox,这样很快就能得到近20G的空间,够备份整个VPS了,或者直接去淘宝代刷,我大概花了8块升到了18G。那么我放出我的备份脚本吧:

backup.sh :

#!/bin/sh
BACKUP_SRC="/home/XXX/backup"  //用于同步的本地目录
BACKUP_WWW="/home/wwwroot"     //你的网站目录
NOW=$(date +"%Y.%m.%d")
MYSQL_SERVER="127.0.0.1"
MYSQL_USER="你的mysql用户"
MYSQL_PASS="你的mysql密码"
DAY=$(date +"%u")             //取当前星期,1表示周一

start() {

//dump数据库数据,以及备份网站整站文件
mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS 你的数据库名 > "$BACKUP_SRC/$NOW-Databases.sql"
cp -r $BACKUP_WWW $BACKUP_SRC

//每周对网站打包一次,便于回滚
if [ "$DAY" -eq "7" ] ;
then
  tar cfz "$BACKUP_SRC/$NOW-www.tgz" $BACKUP_WWW ;
fi
echo starting dropbox
/root/.dropbox-dist/dropboxd &
}
stop() {
echo stoping dropbox
pkill dropbox
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
esac

写好脚本之后,加上可执行权限:

chmod +x backup.sh
crontab -e

然后设置一个定时作业即可:

0 4 * * * sh /root/backup.sh restart
0 5 * * * sh /root/backup.sh stop

每天4点开始执行,5点关闭同步。

好了,然后就等着自动备份吧,记得去Dropbox上看看同步有没有问题。