利用百度网盘自动备份 Linux VPS 文件和多线程下载百度网盘资源

date
May 8, 2018
slug
make-backup-using-baidu-cloud-disk
status
Published
tags
折腾
summary
本篇文章要分享的Linux VPS文件自动备份上传到百度网盘中采用的程序是bpcs_uploader百度网盘自动上传脚本,同时如果我们要恢复百度网盘的文件到VPS主机上或者下载百度网盘资源,可以用Axel这个Linux下的多线路下载工具,快速将资源从百度网盘中下载到VPS上
type
Post
本篇文章要分享的Linux VPS文件自动备份上传到百度网盘中采用的程序是bpcs_uploader百度网盘自动上传脚本,同时如果我们要恢复百度网盘的文件到VPS主机上或者下载百度网盘资源,可以用Axel这个Linux下的多线路下载工具,快速将资源从百度网盘中下载到VPS上。

一、下载安装bpcs_uploader百度pcs上传脚本

1、bpcs_uploader作者官网:
项目页面:<https://oott123.github.io/bpcs_uploader/>
2、百度pcs上传脚本部落已经详细介绍过了:bpcs_uploader百度网盘自动上传脚本-将文件一键放到百度云 3、登录你的VPS主机下载安装bpcs_uploader,系统要求是Linux的php 和 curl已经安装。执行以下命令。
wget <https://github.com/oott123/bpcs_uploader/zipball/master>
unzip master
mv oott123-bpcs_uploader-3a33d09 freehao123 #重命名
cd freehao123 #进入目录
chmod +x bpcs_uploader.php #设置权限
./bpcs_uploader.php #运行初始化
4、注意从github下载的代码解压包的名称可能会有变动,如果你发现第三步的重命名无法使用,你查看一下你下载下来的解压名称是什么。 PS:2014年3月10日更新,感谢“无名科技”的提醒,现在PCS需要审核,我们可以用快速初始化的方法bpcs_uploader设置。执行以下命令:
./bpcs_uploader.php quickinit
敲下命令直接进入快速初始化流程,输入y,然后打开浏览器访问https://openapi.baidu.com/device ,在“请输入设备上显示的用户授权码:”文本框中输入上面显示的授权码,并点击继续。 看到网页上显示“请返回设备继续操作!”后,返回ssh上按下回车后,即完成了初始化配置。 4、运行上述代码后,这里会需要输入一个有PCS权限的API KEY。

二、配置bpcs_uploader授权百度云操作

1、接上面,你需要到 https://qing.baidu.com/ 中创建一个用来备份文件的应用项目。
2、创建好后,在“API管理”中找到“API列表”。
3、在PCS API一行中点击开启
4、输入你要存放文件的目录名称。
5、完成后,在应用的基本信息中找到API KEY和Secret Key。
6、再回到刚刚你要填入API KEY的SSH界面,复制粘贴API Key,回车。
7、填入你的百度云备份文件的目录名称,然后会得到一连串的URL地址,复制它。
8、用浏览器打开这个URL,会看到是否授权访问你的百度云的提示。
9、确定后,页面会显示“百度 Oauth 2.0”的字样,表示已经授权完成。
10、将将浏览器的地址栏中的access_token一连字符复制回SSH中,粘贴,回车。最后看到是你的百度网盘的容量信息,表示你已经成功配置好了bpcs_uploader了。

三、自动打包压缩VPS文件定时上传到百度网盘

1、自动打包压缩VPS文件的代码有很多。
2、复制下面代码保存为baidubd.sh。用文本编辑器打开baidubd.sh将MysqL用户名和密码改你自己的。
#!/bin/bash
# 常规定义
MYSQL_USER="freehao123"
MYSQL_PASS="123456"
baidupan_DIR="/backup/$(date +%Y-%m-%d)"
BACK_DIR="bdbackup"
# 备份网站数据目录
NGINX_DATA="/etc/nginx"
BACKUP_DEFAULT="/var/www"
# 定义备份文件名
mysql_DATA=mysql_$(date +"%Y%m%d").tar.gz
www_DEFAULT=default_$(date +%Y%m%d).tar.gz
nginx_CONFIG=nginx_$(date +%Y%m%d).tar.gz
# 判断本地备份目录,不存在则创建
if [ ! -d $BACK_DIR ] ;
  then
   mkdir -p "$BACK_DIR"
fi

# 进入备份目录
cd $BACK_DIR

# 备份所有数据库
# 导出需要备份的数据库,清除不需要备份的库
mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' > databases.db
sed -i '/performance_schema/d' databases.db
sed -i '/information_schema/d' databases.db
sed -i '/mysql/d' databases.db

for db in $(cat databases.db)
 do
   mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz
done

# 打包数据库
tar -zcvf $mysql_DATA *.sql.gz

# 打包本地网站数据
tar -zcvf $www_DEFAULT $BACKUP_DEFAULT

# 打包Nginx配置文件
tar -zcvf $nginx_CONFIG $NGINX_DATA/*.conf

# upload
cd ~
/root/freehao123/bpcs_uploader.php upload $BACK_DIR/$nginx_CONFIG $baidupan_DIR/$nginx_CONFIG
/root/freehao123/bpcs_uploader.php upload $BACK_DIR/$mysql_DATA $baidupan_DIR/$mysql_DATA
/root/freehao123/bpcs_uploader.php upload $BACK_DIR/$www_DEFAULT $baidupan_DIR/$www_DEFAULT

# Delete all local backup
rm -rf $BACK_DIR


exit 0
3、脚本的备份目录你也需要根据自己的VPS来修改,如果你在重命名把解压包换成了其它的名称,记得在代码最后的bpcs_uploader路径也改一下。
4、将修改后的baidubd.sh上传到你的root目录中,然后执行:sh baidubd.sh,就可以实现手动打包压缩VPS文件并上传到百度网盘中了。
5、如何实现定时备份上传到百度网盘中?编辑定时任务:crontab -e,加入一行:00 02 * * * /root/baidubd.sh,保存。表示每天的凌晨2:00自动执行baidubd.sh脚本。 6、/root/baidubd.sh这是脚本路径,请根据需要自己修改。命令:crontab –l 可以看到你当前的定时任务。 最后不要忘记重启任务:service crond restart (CentOS6)

四、VPS多线程高速下载百度网盘资源

1、上面我们已经将网站文件打包上传到了百度网盘了,日后如果有需要我们就可以将百度网盘中下载备份文件恢复到VPS主机上了。百度网盘目前来说下载速度还是不错的,但是可惜的只能单线程下载。 2、这里再分享一下用Linux下的Axel多线程高速下载工具,来下载百度网盘的大文件。其实此方法最初还不是用来下载百度网盘备份文件的,不少朋友用它来下载百度网盘上自己或者别人存放的“大型文件”。 3、CentOS安装Axel:
32位CentOS执行下面命令:

wget -c <https://pkgs.repoforge.org/axel/axel-2.4-1.el5.rf.i386.rpm>
rpm -ivh axel-2.4-1.el5.rf.i386.rpm
64位CentOS执行下面命令:

wget -c <https://pkgs.repoforge.org/axel/axel-2.4-1.el5.rf.x86_64.rpm>
rpm -ivh axel-2.4-1.el5.rf.x86_64.rpm
Debian/Ubuntu安装Axel:

apt-get install axel
4、axel使用的格式是:(可选参数)-n 指定线程数,-o 指定另存为目录,-s 指定每秒的最大比特数,-q 静默模式 5、例如用9个线程来下载百度网盘的资源,就是类似于:
axel -n 9 "https://222.186.128.146/cdn.baidupcs.com/file/87671d01a637b83e5977353e7?xcode=45abddad=1765086594250528-727172238&time=1380794627&sign=FDTAXER-DCb740ccc551u3np1Tc%3D&&fn=tool.zip&wshc_siphost=ipdbm" 6、这是用axel下载百度网盘资源的速度,9个线程已经达到了10MB/s左右,大家在用axel时线程最好不要超过100个。 (点击放大)
7、当然我们也可以直接用Linux的Wget下载工具来下载百度网盘的文件,格式是:wget -c -O onlyone.tp,参数-c是断点下载,O是为下载的文件指定一个文件名,后面的onlyone.tp就是新命名的文件。操作如下:
wget -c -O onlyone.tp "<https://222.186.128.160/cdn.baidupcs.com/file/564f7b2886c01e5314463b33eb111054?xcode=00497548280707571-250528-148753LpXzLkD&to=cb&f7356&sh=1&fn=BoA%20-%20%A3%29.tp&wshc_tag=0&wsiphost=ipdbm>"
8、这是Wget下载百度网盘的文件速度,也达到1MB/s以上。

五、VPS自动备份文件到百度网盘和下载到本地操作

1、通过上面的方法打包上传的文件都放在百度云的“我的应用数据”中。
2、进入我的应用数据中,可以看到你创建的应用项目,里面就有刚刚上传好的打包文件。
3、这是将百度网盘的备份文件下载到本地,网站文件、数据库文件、服务器配置文件等都有,如果你还要想备份其它的文件,只需要在代码中加入路径即可。

© Krist 2016 - 2024

|