在各大网盘都打样甚至删库跑路的情况下,百度云盘还是坚持下来确实不容易,其在国内同行业中的地位可见一斑。当然限速很严重,且如今新注册账户容量只有1T(银行卡验证后可免费升级2T)。不过这些问题都可以解决。对,所有可以用RMB解决的事情都不是事儿 。此外,一般网站(比如博客)数据一般都不大,压缩后就更小了。还有就是服务器后台自动加密打包,数据安全性亦可保障。介于以上原因,可选择百度云盘作为备份工具。
  此方法备份数据 = Zip加密打包 + 文档结构及属性保持 + 自动化 - 需每月验证1次(待测试)

一、程序安装

1. zip、unzip安装

1、apt-get install zip  或  yum install zip
2、apt-get install unzip 或  yum install unzip

2. bpcs_uploader 安装

1、cd /root/
2、wget https://github.com/oott123/bpcs_uploader/archive/master.zip
3、unzip master.zip
4、cd /root/bpcs_uploader-master
5、chmod +x bpcs_uploader.php
6、php -d disable_functions -d safe_mode=Off -f bpcs_uploader.php quickinit

3. 百度认证

  完成2步骤后,会在SSH里面出现这样一段文字:

...
Input gq5uvp9n as the user code if asked.
After granting access to the application, come back here and press Enter to continue.

  复制上面文字中的:gq5uvp9n ,修改为以下链接(就是这部分...code=gq5uvp9n&...)。然后浏览器中打开链接:

http://openapi.baidu.com/device?code=gq5uvp9n&display=page&redirect_uri=&force_login=

点击确认后回到SSH,回车,随后出现:

Access Granted. Your Storage Status: 2054.73G/2056.00G (99.94%)
Enjoy!
即表示安装已经完成。输入:
php -d disable_functions -d safe_mode=Off -f bpcs_uploader.php quota

查询下容量。

二、 上传数据

1、shell脚本—压缩及上传

#!/bin/bash
# 数据库用户名和密码 要备份的数据库
MYSQL_USER="root"
MYSQL_PASS="12345678"
ZIP_PASS="12345678"

#数据库临时备份目录
BACK_DIR="/root/bdbackup/mysql"

#保存的名字
MYSQL_BACK_NAME=mysql_$(date +"%Y%m%d").zip

#程序目录
bpcs_uploader="/root/bpcs_uploader-master/"

#清空本地
 rm -rf ${BACK_DIR}*

# 判断本地备份目录,不存在则创建
if [ ! -d $BACK_DIR ] ;
  then
   mkdir -p "$BACK_DIR"
fi
 
# 进入备份目录
cd $BACK_DIR

 #导出数据库,一个数据库一个压缩文件
for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
    (/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
done
 
#压缩数据库文件为一个文件 
zip -q -r -P $ZIP_PASS $MYSQL_BACK_NAME $BACK_DIR

#上传到云盘
php -d disable_functions -d safe_mode=Off -f ${bpcs_uploader}bpcs_uploader.php upload $MYSQL_BACK_NAME $MYSQL_BACK_NAME
rm -rf ${BACK_DIR}*

exit 0

注:需要修改以下参数
    1、数据库用户名: MYSQL_USER="root"
    2、数据库密码:MYSQL_PASS="12345678"
    3、压缩文件的压缩解压密码:ZIP_PASS="12345678"

2、脚本运行

在退出VI编辑器之前先验证脚本的文件格式,退出编辑模式后,输入:

::set ff?

回车后,若返回: unix,则表示没问题,反之,输入:

:set ff=unix

:wq后回到SSH命令界面,输入:

1、chmod +x /root/backup-sql.sh (假设脚本的位置在这里)
2、./root/backup-sql.sh

三、数据测试

  回到网盘,进入:我的应用数据->bpcs_uploader。下载备份的数据,解压后得到类似“eonegh.com.sql.gz”这样的文件,登录到数据库后台,备份一遍数据库,再清空eonegh.com。然后导入eonegh.com.sql.gz。回到网站进一步测试数据的完整性。

四、补充说明

1、自动运行

  将脚本添加到自动处理程序cron。

crontab -e
* 3 */3 * * /root/backup-sql.sh 2>&1 | tee -a /root/backup.log

  推荐用VI编辑器,自动执行程序:每3天执行一次备份上传操作,且在第三天的本地凌晨3点执行。日志目录在:/root/backup.log。

2、每月验证

  百度云盘的API上传操作需要每个月验证,待测试。

3、后期改进

  根据测试效果,做后续更新。

五、参考文档


本文标签:备份百度云盘恢复