linux文件上传至百度网盘备份
一、摘要说明
1.工具:百度网盘的python客户端--bypy
2.下载方式:通过pip下载
3.实现方案:安装pip-->安装bypy-->百度网盘授权-->测试验证-->扩展
4.注意事项:使用bypy工具绑定后,由于百度PCS API权限限制,程序只能存取百度云端/apps(我的应用数据)/bypy目录下面的文件和目录。
5.命令解释:
bypy info #空间使用信息,首次查看会出现一个授权网址,打开后登陆百度网盘,复制粘贴授权码,即可绑定此账号的百度网盘
bypy list #目录信息
bypy upload #例如我们可以备份上传/test目录下的所有文件,把本地当前目录下的文件同步到百度云盘,要注意切换到你想要上传的目录在执行这个命令,登录到网盘上,可以看到所有文件已经上传
bypy downfile #下载百度网盘的单个文件
bypy downdir #把云盘上的内容同步到本地
bypy compare #比较本地当前目录和云盘根目录,看是否一致,来判断是否同步成功:
二、正文
服务器信息
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
查看python及pip状态(有高版本尽量使用高版本)
[root@localhost ~]# python
python python3 python-argcomplete-check-easy-install-script
python2 python3.6 python-argcomplete-tcsh
python2.7 python3.6m
[root@localhost ~]# pip
pip pip3 pip-3 pip-3.6 pip3.6
安装bypy
[root@localhost ~]# pip3 install bypy
[root@localhost ~]# pip3 install requests
#出现Successfully 表示安装成功
#出现 already satisfied表示已经安装过
授权
[root@localhost ~]# bypy info
Please visit:
https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8WE4EpCsau1oS0MplgMKNBn&response_type=code&redirect_uri=oob&scope=basic+netdisk
And authorize this app
Paste the Authorization Code here within 10 minutes.
Press [Enter] when you are done
浏览器打开https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8WE4EpCsau1oS0MplgMKNBn&response_type=code&redirect_uri=oob&scope=basic+netdisk
登录百度网盘会看到授权码,
复制后粘贴,认证成功后会出现百度网盘的空间使用信息
进入需要上传文件的目录
[root@localhost ~]# cd test/
[root@localhost test]# ls
22.txt TDengine-server-3.0.4.1-Linux-x64.rpm
上传
[root@localhost test]# bypy upload 22.txt
[root@localhost test]# bypy upload TDengine-server-3.0.4.1-Linux-x64.rpm
[root@localhost test]# bypy list
/apps/bypy ($t $f $s $m $d):
F 22.txt 3 2023-09-27, 08:39:00 628aab19am6eb080a401a6d1a68a6f80
F TDengine-server-3.0.4.1-Linux-x64.rpm 54337532 2023-09-26, 17:18:46 e3f292c81hccb01cf521a26590fc222a
客户端查看
修改文件后上传,可以直接覆盖相同文件
[root@localhost test]# echo 3333333333 > 22.txt
[root@localhost test]# bypy
bypy bypygui
[root@localhost test]# bypy upload 22.txt
[root@localhost test]# bypy list
/apps/bypy ($t $f $s $m $d):
F 22.txt 11 2023-09-27, 10:50:23 49c2c7030j2f468c9b8a345801d3bcf0
F TDengine-server-3.0.4.1-Linux-x64.rpm 54337532 2023-09-26, 17:18:46 e3f292c81hccb01cf521a26590fc222a
换个文件夹下载查看最新的22.txt文件,说明已经覆盖
[root@localhost test]# cd ..
[root@localhost ~]# bypy downfile 22.txt
<I> [10:51:13] 22.txt <- /apps/bypy/22.txt
[====================] 100% (11.0B/11.0B) ETA: (19B/s, gone)
[root@localhost ~]# cat 22.txt
3333333333
客户端查看,也是最新的文件
三、更换百度网盘
百度网盘端解绑
登录百度网盘站好关联界面解除关联:https://passport.baidu.com/accountbind?tpl=
linux服务器客户端解绑
百度网盘解绑后只是单方面的解绑,还需要在linux端解绑,
关联的token存储在~/.bypy/bypy.json中,只需要删除这个文件就可以了。
[root@localhost test]# ll ~/.bypy/bypy.json
-rw------- 1 root root 311 9月 27 14:09 /root/.bypy/bypy.json
[root@localhost test]# rm -f ~/.bypy/bypy.json
重新绑定的话重复之前的操作就可以了
[root@localhost test]# bypy info
Please visit:
https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8WE4EpCsau1oS0MplgMKNBn&response_type=code&redirect_uri=oob&scope=basic+netdisk
And authorize this app
Paste the Authorization Code here within 10 minutes.
Press [Enter] when you are done
4ff25476a0f0580f8b94eb31440e02ac
Authorizing, please be patient, it may take upto 300 seconds...
<E> [14:09:41] Waiting 10 seconds before retrying...
<E> [14:09:51] Request Try #2 / 5
Quota: 405.000GB
Used: 120.113GB
四、扩展
1.可以使用crontab计划任务进行实时备份;
2.或者使用编辑上传脚本,在本地生成文件的时候自动上传至百度网盘备份