之前本来想用FTP来进行备份数据的,但是都没有什么长期的FTP服务器,于是就想了用网盘来备份网站的数据。
国外的网盘推荐就是使用Dropbox,信誉不错的,做了基本任务就2G多的空间,可以自己刷好友来扩大容量!
于是乎,在网上搜了搜,转载过来和大家分享!
准备工作
如果没有Dropbox的用户可以使用后面的推荐码进行注册,http://db.tt/yV9WSxh ,不遮遮掩掩,就是推广链接!你好我好嘛~
注册完后,前往Apps点击Create an app,需要验证邮箱(不必多说了吧),填好基本信息,在Access的选项中选择Full Dropbox
如上图所示!
第二步就是下载Dropbox-Uploader,下载地址:https://github.com/andreafabrizi/Dropbox-Uploader
下载之后,上传至/root/目录下,不建议改名字!
开始配置
chmod +x dropbox_uploader.sh #赋予权限 ./dropbox_uploader.sh info #开始绑定APP
这里他会让你输入App key以及App secret,在刚刚我们创造的APP那里有!
然后他会询问你是App folder 还是Full Dropbox,按照刚刚我们上面的说明,按f,然后回车!
然后他会给出一个地址,自己复制下来用IE打开,其实就是授权给这个APP!
授权好了,回到SSH上,按下回车。
如果不出意外的话,我们就配置好了,可以用下面的代码测试!
./dropbox_uploader.sh upload /etc/passwd /backup/passwd.old
回显DONE就说明配置成功了!
关键代码
#!/bin/bash DROPBOX_DIR="/backup/$(date +%Y-%m-%d)" #Dropbox上的备份目录 MYSQL_USER="root" #数据库帐号 MYSQL_PASS="123456" #数据库密码 YM_DATA=/etc/nginx #nginx配置目录 BACK_DATA=/home/backup #本地备份文件存放目录,手动创建 DATA=/home/www #网站数据存放目录 #定义数据库的名字和旧数据库的名字 DataBakName=Data_$(date +"%Y%m%d").tar.gz WebBakName=Web_$(date +%Y%m%d).tar.gz YMName=YM_$(date +%Y%m%d).tar.gz OldData=Data_$(date -d -6day +"%Y%m%d").tar.gz OldWeb=Web_$(date -d -6day +"%Y%m%d").tar.gz OldYM=YM_$(date -d -6day +"%Y%m%d").tar.gz #定义Dropbox旧数据的名字(30天前) Old_DROPBOX_DIR=/backup/$(date -d -30day +%Y-%m-%d) #Dropbox上的备份目录 #删除本地6天前的数据 rm -rf $BACK_DATA/$OldData $BACK_DATA/$OldWeb $BACK_DATA/$OldYM cd $BACK_DATA #使用命令导出SQL数据库,并且按数据库分个压缩 for db in `mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do (mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz) done #压缩数据库文件合并为一个压缩文件 tar zcf $BACK_DATA/$DataBakName $BACK_DATA/*.sql.gz rm -rf $BACK_DATA/*.sql.gz #压缩网站数据 cd $DATA tar zcf $BACK_DATA/$WebBakName ./* #压缩域名配置数据 cd $YM_DATA tar zcf $BACK_DATA/$YMName ./* cd ~ #开始上传 ./dropbox_uploader.sh upload $BACK_DATA/$DataBakName $DROPBOX_DIR/$DataBakName ./dropbox_uploader.sh upload $BACK_DATA/$WebBakName $DROPBOX_DIR/$WebBakName ./dropbox_uploader.sh upload $BACK_DATA/$YMName $DROPBOX_DIR/$YMName #开始删除远程30天前的文件 ./dropbox_uploader.sh delete $Old_DROPBOX_DIR/ echo -e "Thank you! all down"
按照说明自己配置一下,如果需要定时备份的请麻烦自己设置!
还需要赋予脚本运行的权限
chmod +x backup.sh #赋予权限
注意:/home/backup/这个目录需要自己创建,不然会报错!
运行的时候就输入下面的代码即可!
./backup.sh
最后
没有最后了,当你做完
你也可以按照自己的需要设置,不需要的功能自己#了他就可以了!
祝你一路顺利!我的vps就是一路顺利过来了~
Linux VPS备份网站数据到Dropbox by 桔子小窝 is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
curl: option –data-urlencode: is unknown
很奇怪,我两个VPS装了CURL,跑这个sh都会这样。
应该是你的cURL版本太低了。curl 7.18.0版本才加入的这个参数。升级一下吧~