厌倦了百度网盘的限速和9秒教育片,开始陆续将主要备份转移到Google drive,但是Google drive每日限制750G流量,转存大文件确实难受。花了2天看了一下主流的绕过限制的方法,Folderclone测试速度不够快,因此采用AutoRclone。

如果你每日转存文件不会达到750G限制,建议使用Copy, URL to Google Drive。请参考这篇教程

准备工作

1.一个Google团队盘。

如果你没有请使用下方链接添加

  1. 英国谢菲尔德大学:https://gdrive.zppcw.cn/
  2. 404 NOT FOUND:https://gd.404edu.workers.dev/
  3. https://gd.zxd.workers.dev/
  4. http://leon.educationhost.cloud/
  5. swccd.edu团队盘:https://teamdrive.xcpx.workers.dev/
  6. 洛杉矶加利福尼亚大学团队盘:https://ucla.ur.workers.dev/
  7. 日本国際大学团队盘:https://iuj.ur.workers.dev/
  8. 自动创建:https://www.teamdrive.workers.dev

感谢提供团队盘的大佬。

团队盘并不永久,建议备份。

团队盘无限容量但有文件数量限制,大概40W为上限。

2.一个VPS。性能不重要,但要在墙外。

3,一个Google账号。

开始

1.安装python3

Debian/ubuntu

apt-get install git python3 python3-pip -y

因为centos自带python,可以参考此教程

yum -y install python3

2.安装AutoRclone

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

3.生成Service Accounts

生成SA一个项目就是100个75T,注意按需生成。

先开启Google API保存生成的credentials.json,并将其上传到VPS上AutoRclone目录下。

完成后,分三种情况。

1.如果你之前没创建过项目, 直接运行。

python3 gen_sa_accounts.py --quick-setup 1

创建1个新项目

开启相关的服务

创建100个service accounts(1个项目,每个项目100个)

将100个service accounts的授权文件下载到accounts文件夹下面

2.如果你已经有N个项目,现需要创建新的项目并在新的项目中创建service accounts,直接运行。

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

额外创建2个新项目,开启相关的服务

创建200个service accounts(2个项目,每个项目100个)

将200个service accounts的授权文件下载到accounts文件夹下面

3.如果你想用已有的项目来创建service accounts(不创建新的项目),直接运行。

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

注意这会覆盖掉已有的service accounts

打开给出的链接进行授权

选择账号,复制生成的授权码到终端。

第一次可能需要开启Service Usage API服务。

启用Service Usage API后回到终端回车即可成功运行

此时AutoRclone目录下的accounts下会有非常多的json文件。

4.将service accounts加入Google Groups

为了方便管理service accounts,也是为了让我们的Team Drive可以容纳更多的service accounts,我们这里用到了Google Groups。Team Drive

Team Drive最多添加600账户。

普通Google账号

先直接创建一个Google Group,然后手动地将service accounts对应的邮箱地址(可以在json认证文件中找到)挨个加进去。

  • 创建Google Group
  • 手动添加service accounts对应的邮箱地址

邮箱地址可以在每json认证文件中找到或在每个项目的IAM和管理--服务账号中 找到

  • 把群组邮箱添加到Team Drive

使用chrome插件Email Extractor即可,普通Google用户只能每次添加10条,没24小时添加100条。

G Suite管理员

按照官方步骤开启Directory API,将生成的json文件保存到credentials文件夹下。在控制面版里面创建一个群组,创建好你会获得一个类似域名邮箱的地址sa@yourdomain.com。

利用API将service accounts加入Google Groups

python3 add_to_google_group.py -g sa@yourdomain.com

如果想看参数的具体含义,直接运行python3 add_to_google_group.py -h

将 service accounts 加入到目标Team Drive

cd /root/AutoRclone
#将以下SharedTeamDriveDstID替换为你团队盘ID 
python3 add_to_team_drive.py -d SharedTeamDriveDstID

Google drive团队盘最后面一段就是团队盘ID

5.安装gclone

  • 安装gclone

介绍:https://github.com/donwa/gclone/

基本功能同rclone:https://rclone.org/docs/

win或其他更多版本到这里下载https://github.com/donwa/gclone/releases

需要支持世纪互联的看这里https://github.com/jonntd/gclone/

bash <(wget -qO- https://git.io/gclone.sh)
##方便使用gclone直接改名rclone(主要原来的脚本都叫rclone)
cp /usr/bin/gclone /usr/bin/rclone
  • 配置gclone
rclone config
##建议先去看看rclone的基础使用方法https://xiaofd.win/rclone.html
 
##关键步骤!先查看AutoRclone/accounts/ 的文件,将其中一个设置为service_account_file
 
ls AutoRclone/accounts/
service_account_file = /root/AutoRclone/accounts/00afd9025d84219e9df6f1255d7eafe58a94e513.json
##改为你accounts文件夹下生成的任一json文件名
service_account_file_path = /root/AutoRclone/accounts/
建议挂载为Team Drive
Configure this as a team drive?
y) Yes
n) No (default)
y/n> y

如果不想手动配置的,可以直接修改配置文件

vim /root/.config/rclone/rclone.conf
#添加以下代码,service_account_file和service_account_file_path修改为你的。
[sa1]
type = drive
scope = drive
service_account_file = /root/AutoRclone/accounts/00afd9025d84219e9df6f1255d7eafe58a94e513.json
service_account_file_path = /root/AutoRclone/accounts/

注意如果添加团队盘时提示not found,建议等待片刻,查看团队盘成员是否全部添加。

至此,所有配置已完成。一次配置,可以多台机使用

把/root/.config/rclone/rclone.conf配置文件和AutoRclone/accounts/这个文件夹保存好,复制到其他机器上安装好gclone就可以直接使用。

  • 复制文件

gclone简单使用教程

1)命令行根目录id

原版rclone如果跨团队盘或者共享文件夹,需要多个配置盘符用于操作.

gclone支持根目录id操作.共享目录和团队盘应该带--drive-server-side-across-configs

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

目录id可以是:普通目录,共享目录,团队盘.

支持{目录id}后,跟后续路径

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

2)直接拷贝单文件id

id操作.共享目录和团队盘应该带--drive-server-side-across-configs

gclone copy gc:{共享文件的id} gc:{目录2的id}  --drive-server-side-across-configs

支持{目录id}后,跟后续路径

gclone copy gc:{共享文件的id} gc:{团队盘id}/media/  --drive-server-side-across-configs

例如

gclone copy q1:{1GRD6kriNllzTSmzycpbB2jBEmP4PeYP3} q1:电影/豆瓣TOP157 --drive-server-side-across-configs -v
##q1是配置gclone时起的名字,1GRD6kriNllzTSmzycpbB2jBEmP4PeYP3是目录ID或共享ID,q1:电影/豆瓣TOP157是转存到的团队盘的路径,会自动创建。
##--drive-server-side-across-configs为服务器端复制,不走本地流量
## -v表示打印进度

如果转存过程中提示文件not found和404,打开文件共享即可,注意共享要是anyone with the link

使用过程中发现运行中断开SSH,任务会停止。此时使用screen命令即可。

安装screen

yum install screen

创建一个新的窗口

安装完成后,直接敲命令screen就可以启动它。但是这样启动的screen会话没有名字,实践上推荐为每个screen会话取一个名字,方便分辨

screen -S david
##创建一个名为david的窗口

按ctrl+a再按d,暂离会话,会显示[detached]的字样。

用screen –ls查看目前子界面的状态

用screen -r david重新回到会话。

如何备份团队盘?

将要备份的团队盘的群组添加到新团队盘,运行命令。

gclone copy q2:{0AJI3orDTyTCUUk9***} q2: --drive-server-side-across-configs -v
##q2是gclone配置的name,0AJI3orDTyTCUUk9***是旧盘ID,后面的q2: 是新盘,不加路径

参考文章:

Rclone高级玩法--利用服务账号突破日流量750G限制

AutoRclone配合gclone突破GoogleTeamDrive750G流量限制

[更新]Folderclone谷歌Google Drive共享云端硬盘转存相互转移拷贝复制文件的正确姿势

在CentOS上安装Python3的三种方法

解决Linux关闭终端(关闭SSH等)后运行的程序自动停止

screen命令


醉后不知天在水,满船清梦压星河。