3.Gclone的安装和配置

title.jpg
上一节:


可能上一章,对于AutoRclone的环境配置,SA账号涉及的google开发者控制台,google群组,autoRclone几个python脚本一大堆指令和参数对象的恰当选择,让你头大,没关系,其实autoRclone主要用处只是批量生成sa账号,而批量上传到群组,autoRclone的指令操作,不熟悉,其实不碍事,甚至会不会批量生成sa账号,也不要紧,你只需要熟悉google开发者控制台这边如何新建项目,添加sa账号,创建群组,全部手动来添加,弄个10来个sa到群组,是完全可以做到的,也不用多花多少时间,10个sa,每天7.5TB上限,足够大部分人玩了,这样你就可以完全跳过autoRclone和对你来说不太友好的python3环境安装,这些统统跳过都行

将得到的10个sa配置信息json文件,和一个待命的群组添加到你的目标团队盘,就可以直接安装Gclone,使用gclone享受自动切换sa拷贝文件了,完全可以以后有空再巩固autoRclone的工具人操作

gclone是传承了rclone所有的功能,支持OneDrive拷贝Googledrive,操作指令也比较清爽,你甚至可以将gclone copy等指令做个改名,一律改成rclone copy等,完全当升级版的rclone玩,也是可以的

好了,我们正式开始Gclone下载安装步骤:

https://github.com/donwa/gclone/releases

直接去项目里找win版本的下载下来,比如说我现在下载最新版本是

gclone_1.51.0-mod1.3.1_Windows_x86_64.zip

解压到任意地方,然后在对应路径输入cmd打开cmd窗口,输入gclone config,如果当前路径下没有rclone.conf,则会自动寻找rclone默认的配置文件路径下的rclone.conf,建议和rclone放一块,毕竟autorclone目录下如果你运行过拷贝指令,会生成配套的rclone.conf,这个conf不太适合gclone使用。

和autoRclone不太一样的地方在于,它会直接读取rclone的配置文件并进行配置升级,添加新的配置条目,并且自带rclone所有功能,本质上不需要本地安装rclone,而autoRclone则是在autoRclone的安装目录下额外生成一个rclone.conf配置,通过环境变量自动找到本地的rclone并运行rclone.exe

所以,gclone是完整继承了rclone,而又有全面提升的一个mod版本,也是使用者较多的原因

经过第一章rclone的配置流程,gclone的配置几乎一样,我们只需要添加好service_account_file路径,这里演示路径为:

E:softwareAutoRclone-masteraccounts00e7a4ca46802b21eeaacede8e83402cc4eb6a2a.json

其次,新增一个service_account_file_path,这里演示为

E:softwareAutoRclone-masteraccounts

此路径就是Gclone自动切换sa的功能所必须的配置

你熟练后甚至可以直接手动去C:Usersplumn .configrclone目录下修改rclone.conf添加这俩条目

好了,gclone目前就可以正常使用了

以后你随身自带E:softwareAutoRclone-masteraccounts那堆json sa信息,拿着C:Usersplumn .configrclone目录下的rclone.conf,再搭配google group邮件地址,想占领哪里,群组就跑哪里去,谷歌网盘1pb拷贝大业,就看你的了。

以下是gclone常用指令参考示例

gclone copy drivename:{目录1的id} drivename:{目录2的id}  --drive-server-side-across-configs -v

没错,你肯定会发现一个与rclone不太一样的地方,那就是谷歌系网盘拷贝,不需要多个盘符,只需要你配置文件里自己定义的盘符名,因为实际使用的是SA,group入驻哪里,那么所有添加到group里的SA就有哪里的拷贝权限,而文件夹或者团队盘名的定义,也类似于autoRclone,直接使用文件夹或者团队盘的ID,整个拷贝指令算是非常简洁明了了
--drive-server-side-across-configs则是通过server side copy,-v是过程可视化,这都是rclone原本的指令参数
而对于共享文件夹拷贝到你的团队盘,指令也显而易见了:

gclone copy drivename:{共享目录id} drivename:{团队盘id}/yourfolderlist/ --drive-server-side-across-configs -v

id后可以跟随你需要的文件路径,类似原版rclone的格式

对于单文件,只需要将目录id改成文件的id,即可
我们来实际操作一下:

由于公开分享文件夹功能暂时只支持个人盘,我们看看个人盘里随便找点文件夹分享看看,直接复制这个文件夹的id
1vQnl-QAeR8yI69t38iWOk3HpLCBlPx7Z
准备转存到团队盘,新建文件夹movie吧,复制此文件夹ID:1fuvtquIXBD41kJqOQtwovv1zrWAjUNNI,指令如下:

gclone copy Gdrive:{1vQnl-QAeR8yI69t38iWOk3HpLCBlPx7Z} Gdrive:{1fuvtquIXBD41kJqOQtwovv1zrWAjUNNI} --drive-server-side-across-configs -v

超过750GB后的自动切换我就不测试了,这个一般没问题的

gclone的使用基本上就完成了,注意gclone暂时不支持powershell运行,会优先读取当前目录下rclone.conf配置,尽量别和autoRclone放一块,其他基本上没有什么大问题了

4.AutoRclone&Gclone在linux系统下的安装配置

之前对于这两个工具的讲解,多多少少提到了linux系统下的内容,那么,我们在这一章节,以我个人比较熟悉的cento7 系统,快速配置一遍这两个工具,一来给有需要的朋友一个参考,二来也是让新手再次熟悉下各个工具的配置流程,有耐心的朋友可以对比理解下win和linux系统下每个工具操作的细节区别,和一些交叉互补的部分,最后能得到一个整体的把握,针对不同场景和需求可以灵活选择最合适的部署方案,那就更好了

4.a. 温习下centos7安装配置rclone

首先第三方epel源还有fuse等依赖都先安一遍

yum -y install epel-release
yum -y install wget unzip screen fuse fuse-devel

如果不需要挂载云盘,可以不安装fuse组件

git工具是方便直接从github拉项目安装用的

开启screen进行安装

screen -S intall

然后安装rclone

wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
chmod 0755 ./rclone-*/rclone
cp ./rclone-*/rclone /usr/bin/
rm -rf ./rclone-*

安好后运行配置

rclone config

直接配置私钥api吧
首先访问自己的谷歌开发者api控制台:

API控制台

启用Drive API接口后
新建Oauth认证信息:
Oauth
应用类型选择desktop app,随便填个Rclone命名都行,获得的client_ID和client_secret填入rclone配置里即可

然后 rclone config配置自己的 client_IDclient_secret即可

依次新建自己需要的其他盘配置,这个我就不再演示了,最后示范下常用的拷贝指令供参考

rclone copy -v --disable copy --stats 15s --bwlimit 80M --drive-acknowledge-abuse --max-size 100G --max-transfer 750GB --cache-chunk-size 5M --cache-chunk-total-size 5G --transfers 8 Gdrive:Galgame/ Onedrive:galgame/

-v可视化,
--disable copy 强制本地流量拷贝,减少服务器拷贝不稳定性,
--stats 15s,每隔15s更新进度状态,
--bwlimit 80M限制带宽80M,即640mbps以内
--drive-acknowledge-abuse
拷贝被标记违规文件,不能拷贝病毒文件,也不能拷贝不是自己所有权的违规文件
--max-size 100GB OneDrive目前单文件最大只支持100GB,超过的拷不过,别浪费资源
--max-transfer 750GB 单账号佛系拷贝,满每24h额度就停止
--cache-chunk-size 5M 每个数据缓存块单元大小,默认5m,越大理论上传越快,同时越占内存
--transfers 8 线程默认4,适合<512m内存vps,8线程建议>512m vps使用,如果是OneDrive,建议别超过8线程,那边api限制原因,多线程反而又副作用,谷歌这边对拷,根据自己vps宽带质量,磁盘io,自行增减

好了,rclone基本安装使用到此结束,ctrl+a+d,关闭screen页面,后台运行,安心下线即可,下次 screen -r恢复

对了,配置文件相关操作参考:
rclone config file - 显示配置文件的路径,

一般配置文件在 ~/.config/rclone/rclone.conf
即你当前用户是root的话,配置文件路径就是/root/.config/rclone/rclone.conf

rclone config show- 显示配置文件信息
如果想快速拷贝配置文件到你pc上备份,可以通过xshell快捷键ctrl+shift+f启动xftp,找到对应路径拷贝下来,或者安装lrzsz:

yum install lrzsz -y
sz /root/.config/rclone/rclone.conf

即可下载配置文件
而输入rz则是上传本地文件

特别注意:进入screen session后,同时按住(CTRL和A键)然后输入 :zmodem pass 然后再回车<ENTER>即可使用 rz/sz
如果你没注意直接在screen里面输入 rz/sz卡死,请先 ctrl+a+d退出当前窗口,退出访问:screen -D然后 screen -X -S seesionID/screenname quit

4.b.AutoRclone的安装配置

打开项目地址,查看官方安装脚本:
https://github.com/xyou365/AutoRclone
我们还缺少 git python3 python3-pip
那么先把python3 安装一下,打开官网文件库
https://www.python.org/ftp/python/
看来目前已经更新到3.9.0版本了,我们选个正式版3.8.5二进制文件包准备后续编译安装
Python-3.8.5.tgz
首先安装python3 依赖库和git

yum -y install git zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc make

libffi-devel是python3.7以上版本新增的依赖库
我们将手动编译安装py3环境
如果你的依赖报错,建议yum update先更新,再尝试

wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
tar -xvf Python-3.8.5.tgz
cd Python-3.8.5
./configure --prefix=/opt/python/python-3.8.5 --enable-optimizations --with-ssl

--with ssl是用来pip3管理包工具需要的,可能新版本不需要此项

指定编译安装路径,整理编译项目,预编译整理完毕
那么,开始正式编译安装吧:

make && make install

配置豪华的vps可以在make后加 -j4指令同时4 jobs加快编译,对于更高线程貌似优化效果一般

提示报错

Could not import runpy module

runpy 模块需要gcc 8.1.0以上版本才可以安装,我们查看下,centos7默认自带gcc版本应该是4.6.0样子:gcc -v

我的解决方法是通过添加新的源来安装gcc8版本,如果你嫌麻烦,可以直接安装centos8系统自带的gcc就是8版本以上了

好了,我们之前添加过epel源,再添加software
collections repository,直接yum安装:

yum install centos-release-scl

再安装gcc8和编译器:

yum install devtoolset-8-gcc devtoolset-8-gcc-c++

让我们的shell工具从默认的gcc版本切换到咱们新的gcc8则使用:

scl enable devtoolset-8 -- bash

输入 gcc -v应该就是8版本了

好了,我们再次尝试下编译安装python3:

./configure --prefix=/opt/python/python-3.8.5 --enable-optimizations --with-ssl
make & make install

编译安装完毕,提示python3和pip3管理包工具没有环境变量路径,我们配置下软链接,方便直接使用python3指令操作

ln -s /opt/python/python-3.8.5/bin/python3 /usr/local/bin/python3
ln -s /opt/python/python-3.8.5/bin/pip3 /usr/local/bin/pip3

输入 python3 -V pip3 -V
可以查看python3.8.5 和pip20.1.1都已经正确显示版本了

python3环境包安装完毕,我们继续看autoRclone官网,下载安装auorclone和相关依赖:

git clone https://github.com/xyou365/AutoRclone && cd AutoRclone && sudo pip3 install -r requirements.txt

我们快速新建一个项目并增加100个sa吧:

python3 gen_sa_accounts.py --quick-setup 1 --new-only

忘记还需要我们的credentials.json授权文件了,输入 rz上传
再次输入快速创建指令

根据提示复制授权请求地址,chrome打开

稍等1分钟创建1个新的项目和100个sa账号
我的账号之前win10下安装授权autoRclone已经开启Service Usage API了,所以这里就不再提示打开网址请求授权了,如果你是新谷歌账号第一次安装autoRclone,这里还得根据提示再次授权新权限。
如果嫌创建缓慢,你可以放松一下,回来再看,你可以顺手计下项目名:saf-k6lbeya36m1okscme6y9lw8zbz

cd ./acccounts文件夹ls查看,100个sa已经下载完毕

python3 gen_sa_accounts.py --list-projects列出所有项目
python3 gen_sa_accounts.py --delete-sas saf-k6lbeya36m1okscme6y9lw8zbz删除指定项目下的SA文件
python3 gen_sa_accounts.py --create-sas saf-k6lbeya36m1okscme6y9lw8zbz

如果你创建超过1个项目,然后下载对应超过100个sa,最后发现自己是普通账号一天只能加100个sa到群组,建议手动删除本地accounts文件夹下所有json文件:

rm -rf /root/AutoRclone/accounts/*

然后输入

python3 gen_sa_accounts.py --download-keys saf-k6lbeya36m1okscme6y9lw8zbz

下载指定单个项目下的100个sa

查看自己所在目录,目前是AutoRclone下的话,直接给accounts文件夹打个包,存档备份

zip 100sa.zip ./accounts/*

sz 100sa.zip保存到本地

接下来,我们可以配置rclone,添加刚才的sa文件夹路径到配置文件里,就可以给rclone升级下功能,通过sa账号拷贝文件了,750gb限额用完后可以手动修改sa文件,替换,瞬间回血。
rclone config file指令找到配置文件位置
rclone config edit或者 rclone config show显示

你可以编辑添加sa路径,或者vi直接进去加一行都行,这里就不再演示。

cat /root/.config/rclone/rclone.conf

毕竟一般来说用到多sa的人,估计也不会手动折腾rclone了吧哈哈

我只演示下autorclone的拷贝指令:
找到两个共享盘的ID:
Anime:0AIl3Me6keYC1Uk9PVA
test:0AK-jeaa5dIZeUk9PVA

直接用autoRclone下的add_to_team_drive.py添加成员信息到团队盘。

python3 add_to_team_drive.py -d 0AIl3Me6keYC1Uk9PVA
python3 add_to_team_drive.py -d 0AK-jeaa5dIZeUk9PVA

自己注意人数是否完全添加成功

python3 rclone_sa_magic.py -s 0AIl3Me6keYC1Uk9PVA -d 0AK-jeaa5dIZeUk9PVA -dp /test2/ -b 1 -e 100

之前我简单提到过,自动切换账号的判定逻辑是两个:

if size_GB_done >= SIZE_GB_MAX or cnt_dead_retry >= CNT_DEAD_RETRY

当前sa已传输成功数据超过默认最大值735G,或者重复提交超过默认100次无文件传输

工具暂时是不记录上一次sa的传输情况的,所以要么自己手动修改rclone_sa_magic.py脚本文件里默认的CNT DEAD
RETRY值,要么自己手动修改-b 1为后续SA,否则可能要等3x100s,将近5分钟才会自动切换第二个SA,而第二个sa在之前也消耗完750GB限额的话,你还得继续等100次无文件提交后再切换
OK,这个sa对拷因为小文件比较多,我们先切出screen,继续演示SA添加到google群组,等会回来看看自动切换是否正常运转。

4.c.SA账号添加到google 群组,使用群组管理

先记下团队盘的ID,我们还是拿刚才两个盘做实验:

Anime:0AIl3Me6keYC1Uk9PVA
test:0AK-jeaa5dIZeUk9PVA

普通google账号创建的群组,得手动提取email地址上交到group:linux系统下这个可以直接指令操作,比win系统方便一些,win得专门的小工具辅助处理:

cat ./accounts/*.json | grep "client_email" | awk '{print $2}'| tr -d ',"' > ~/email

查看所有匹配的.json文件,筛选寻找“client_email"行,并打印输出第二段,也就是实际的邮箱地址段,translate 转换并删除,"部分。这样就能拿到所有的邮箱地址了,>代表输出保存到当前用户~/ 默认根目录下email命名文档,当前是root用户,所以就是/root/文件夹下

输入 sz ~/email即可下载email list

手动上传email到group即可
https://groups.google.com/my-groups
不清楚你们的账号是不是还是10人一次的限制,反正我一次性是可以上传100人的,单账号每日100人总限额还是一样的,无论你是否新建群组,一天最多添加100人

记下群组名:
plumn1@googlegroups.com

如果你是gsuite管理员,直接用autoRclone的脚本即可上传SA的json信息到群组,指令是:

python3 add_to_google_group.py -g groupname@yourdomain.com

相信会玩gsuite管理员的朋友,自己多多摸索下就行,这里不再演示

好了,我们screen -r切回sa对拷窗口,看看是否正常触发735g后自动切换,看上去一切正常,如果还未拷贝完成,我们节省时间,直接ctrl+c中断,开始测试group对拷效果。
rz上传之前的remove.py脚本

python3 remove.py --drive-id 0AIl3Me6keYC1Uk9PVA   --role fileOrganizer
python3 remove.py --drive-id 0AK-jeaa5dIZeUk9PVA   --role fileOrganizer

再复制群组邮箱地址,加入两个团队盘里

看一看群组生效没:

rclone --config rclone.conf size --disable ListR src001:/"sakimi chan 合集"/
rclone --config rclone.conf size --disable ListR dst001:/test2

测试下拷贝,避免长时间等待切换sa,我们去修改下100次未响应为5次:

vi rclone_sa_magic.py

搜索/CNT,修改为5次
这次不拷贝小文件数量太多的文件夹,节省时间,直接找sakimi chan 合集文件夹ID:
1vHU2C88NlN2Bj-BDwWSIx9VnKLUpCoHk
目前应该是SA 1已满额度,2拷贝了一些,看看自动切换:

python3 rclone_sa_magic.py -s 1vHU2C88NlN2Bj-BDwWSIx9VnKLUpCoHk -d 0AK-jeaa5dIZeUk9PVA -dp /test3/ -b 1 -e 100

一切正常,那么,autoRclone的入门演示,到此完毕

接下来,我们熟悉下Gclone的安装和操作,实际上gclone比autoRclone好上手很多,原理也是基本一样的

4.d.Gclone的安装和配置:

上一节autoRclone的安装和配置讲了一大堆,实际上你只需要记住两条即可:

  • 一、快速新建一个项目并增加100个sa:
python3 gen_sa_accounts.py --quick-setup 1 --new-only
  • 二、提取email地址:
cat ./accounts/*.json | grep "client_email" | awk '{print $2}'| tr -d ',"' > ~/email

autoRclone本身,你可以不去用,作为sa获取工具就行,我们拿着sa来玩gclone吧:

如果你对centos7安装python3觉得繁琐,完全可以尝试centos8,或者debian,ubuntu系统,或者windows下挂个全局安装,都很方便,甚至你可以完全抛弃批量生成,自己手动去google 开发者控制台一个个创建sa账号,保存邮箱,存入新的谷歌群组,10来个sa手动操作并不是什么为难的事情,总之量力而行,不一定要一口气全熟练,留着以后有空慢慢玩,先拿10个sa玩玩gclone,发现乐趣之后,再回头看看autoRclone的SA生成,python3的安装,说不定就发现原来很简单

新手觉得复杂头疼的主要原因,其实并不是知识点多难,而是新的环境新的操作太多,建议先消化最容易理解的部分,再去看自己觉得难以掌握的地方,难度就会降低

gclone的安装:

bash <(wget -qO- https://git.io/gclone.sh)

gclone version查看版本,会显示gclone mod version,没错,win系统下安装的时候我提到过,gclone是自动寻找rclone.conf直接在rclone配置上进行操作的

作者给他的定义就是一个rclone的 go语言mod

因为gclone包含了rclone的所有功能,自动换sa对拷和指令清爽度方面都有着全面提升,你完全可以

cp /usr/bin/gclone /usr/bin/rclone

将gclone所有指令替换成rclone,就当作魔改rclone使用,都是可以的
因为gclone的配置指令和常规操作指令全部传承的rclone,所以这里快速配置一遍,只需要新增sa文件地址和sa路径,我们先

ls ~/AutoRclone/accounts

选一个json文件名:0126499e53c0e2cff97f20f5338660d6d9da6c82.json
/root/AutoRclone/accounts/
在service_account_file>填写绝对路径:
/root/AutoRclone/accounts/0126499e53c0e2cff97f20f5338660d6d9da6c82.json
然后service_account_file_path>填写:
/root/AutoRclone/accounts/

找到我们默认存储的团队盘id
test:0AK-jeaa5dIZeUk9PVA
我们去tg电报群找点实时新资源看看拷贝下吧:

gclone copy Gdrive:{1ftB64w8Lnr-tkqvxSZ2Ny0RvScxaYSlS} Gdrive:{0AK-jeaa5dIZeUk9PVA} --drive-server-side-across-configs -v

全部存根目录不太美观,我们演示下加路径的指令:

gclone copy Gdrive:{1_5RFn7nDjtuwcS5Q8W0Hhx0LDq1_q4uK} Gdrive:{0AEo69BQhj4EIUk9PVA}/new4/ --drive-server-side-across-configs -v

Gclone的标准操作,相信你已经明白了

那么,建议你回顾下流程,自己搭建熟悉下,先享受下各种工具的便利吧

如果不满足于gclone的速度,或者说想通过telegraph bot更加快捷的转存文件,无需登录vps或者开启你的pc去输入转存指令,想实现随时随地外出旅行也可以便捷地拷贝资源
那么请稍作休息,开启我们下一章,关于gd-utils 百宝箱的配置
下一节:


上一节:

Last modification:June 2nd, 2021 at 06:36 pm
If you think my article is useful to you, please feel free to appreciate