VPS备份 Dropbox

2015-12-19 15:24:53

这次在更换VPS的时候忘记了附件,好吧,导致之前几年所有的图片都没有了。还好只是图片,不是什么重要的数据。所以在这次搬家到新的VPS后,决定把这些工作都做的全全的,采用备份网盘Dropbox的方法。

网摘,记录修改,便于以后重装。

Dropbox 是一个美国的在线网盘,默认提供了2G的空间。

官方地址:www.dropbox.com

APP地址:www.dropbox.com/developers/apps

首先官方注册帐号,创建APP,如图所示,按照下图选择,填写APPNAME,创建。

dropbox

创建好以后,可以看到App key和App secret,记住,接下来会用到。

使用命令在VPS端下载dropbox

wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh
chmod +x dropbox_uploader.sh #赋予权限
./dropbox_uploader.sh info #开始绑定APP

这里他会让你输入App key以及App secret,在刚刚我们创造的APP那里有! 然后他会询问你是App folder 还是Full Dropbox,按照刚刚我们上面的说明,按f,然后回车! 然后他会给出一个地址,自己复制下来用浏览器打开,授权给这个APP! 授权好了,回到SSH上,按下回车。
绑定完成后用以下命令查看是否成功,回显“DONE”表示成功。

./dropbox_uploader.sh upload /etc/passwd /backup/passwd.old

创建、编写自己的备份脚本

vi backup.sh

以下是我的备份脚本,我只备份了附件文件和数据库。

#!/bin/bash
SCRIPT_DIR="/root" #这个改成你存放刚刚下载下来的dropbox_uploader.sh的文件夹位置
DROPBOX_DIR="/backup" #这个改成你的备份文件想要放在Dropbox下面的文件夹名称,如果不存在,脚本会自动创建
BACKUP_SRC="/home/wwwroot/www.mofei.de/wp-content/uploads" #这个是你想要备份的本地VPS上的文件,不同的目录用空格分开
BACKUP_DST="/tmp" #这个是你暂时存放备份压缩文件的地方,一般用/tmp即可
MYSQL_SERVER="localhost" #这个是你mysql服务器的地址,一般填这个本地地址即可
MYSQL_USER="mysqluser" #这个是你mysql的用户名名称,比如root或admin之类的
MYSQL_PASS="password" #这个是你mysql用户的密码
# 下面的一般不用改了
NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tar.gz"
# 备份mysql数据库并和其它备份文件一起压缩成一个文件
mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "$NOW-Databases.sql"
tar cfz "$DESTFILE" $BACKUP_SRC "$NOW-Databases.sql"
# 用脚本上传到dropbox
$SCRIPT_DIR/dropbox_uploader.sh upload "$DESTFILE" "$DROPBOX_DIR/$NOW.tar.gz"
# 删除本地的临时文件
rm -f "$NOW-Databases.sql" "$DESTFILE"

然后改为可执行文件

chmod +x backup.sh

运行输入以下代码即可

./backup.sh

设定每天自动备份,我设置的是凌晨5点

crontab -e
0 5 * * * /bin/bash /root/backup.sh

如果你的VPS是nano编辑器(最上有nano字样),加入之后按Ctrl+O或F3并按Enter保存,然后按Ctrl+X或F2退出;另一种是vi编辑器,需要先按i键进入编辑模式,在末尾输入上面的命令之后,按ESC键,输入:wq ,再按Enter保存并退出即可。
最后重启crontab,大功告成!

/etc/rc.d/init.d/crond restart

对于网站程序的备份,因为很少进行改动,所以不需要每天备份,需要的时候自己手动备份即可。

标签:
Category:柴米油盐