fclone+icopy

对于贫民玩家而言开不起12刀的Gsuit只能多开免费的team drive了,因此,往team drive转存和备份数据就成了重中之重,我之前用gclone+gdutil,最近大佬们升级了姿势,那我也要与时俱进。

准备工作

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账号。

建议使用Ubuntu和Debian

安装python(推荐安装python3.8)

centos7安装python3.8

因为centos7自带python2,安装完后要将所有python2的指向到python3.

安装依赖包

1
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel

安装wget

1
yum install wget

下载源码包

1
wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz

解压安装

1
2
3
4
5
6
7
8
9
10
11
# 解压压缩包
tar -zxvf Python-3.8.1.tgz

# 进入文件夹
cd Python-3.8.1

# 配置安装位置
./configure prefix=/usr/local/python3

# 安装
make && make install

更改默认python版本指向

查看python位置

1
which python

切换目录

1
cd /usr/bin

查看相关的python信息

1
ls -la python*

在这里插入图片描述

发现当我们执行python 命令时,系统指向python 2,然后python 2指向python 2.7,所以系统默认使用的python版本仍然是python 2。

首先将python 改名为 python.bak

1
mv python python2.bak

再次查看python相关信息

在这里插入图片描述

修改yum文件

进入目录/usr/bin,查看有关yum的文件

1
ls -la yum*

在这里插入图片描述

使用vi 进入文本编辑器(如果有多个yum配置文件,都要进去修改):

1
vi yum

点击i进入编辑模式之后将#!/usr/bin/python 改为#!/usr/bin/python2,按ESC退出编辑模式,输入:wq!保存修改退出。

同样进入文件 /usr/libexec/urlgrabber-ext-down 做同样修改。

配置python3软链接

进入/usr/bin目录,配置软链接

1
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python

在这里插入图片描述

1
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip

如果提示/usr/bin/pip已经存在,可以使用rm删除,然后再进行配置。

在这里插入图片描述

当然,也可以配置一个pip3软链接。

1
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3

测试

输入python –version和pip -V

在这里插入图片描述

Ubuntu和Debian安装python3

在ssh中运行以下命令编辑软件源。

1
nano /etc/apt/sources.list

在末尾添加这一行

1
deb http://ftp.de.debian.org/debian testing main

Ctrl+X保存,按键盘Y确定保存,然后按回车(Return)保存成功。然后依次运行下面的几条命令

1
apt-get update
1
apt-get install python3.8 -y

运行上面这一条命令后遇到意外的可以点开看一下

1
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
1
apt-get install python3-pip -y

使用命令python3 -V检查是不是3.8版本 ,以及使用命令pip3 -V检查是不是关联3.8,确认版本正确就可以进行下一步了

安装AutoRclone

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

Service Accounts

生成SA

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

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

img

完成后,分三种情况。

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

1
python3 gen_sa_accounts.py --quick-setup 1

创建1个新项目

开启相关的服务

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

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

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

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

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

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

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

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

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

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

img

打开给出的链接进行授权

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

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

img

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

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

img

将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

img

  • 手动添加service accounts对应的邮箱地址

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

img

img

  • 把群组邮箱添加到Team Drive

img

img

img

使用命令

生成 Service Accounts 后,直接运行以下命令:

1
2
cd
cat ~/AutoRclone/accounts/*.json | grep "client_email" | awk '{print $2}'| tr -d ',"' | sed 'N;N;N;N;N;N;N;N;N;/^$/d;G' > ~/email.txt

批量提取代码来源于:http://fxxkr.com/2020/04/06/onekey-print-email-from-google-sa-json/

运行后,会自动提取 Service Accounts 邮箱账户,并保存到目录下的 email.txt 文件中,同时还很贴心地每10个邮箱账户就隔开一行,方便复制。

运行命令 ls 可以查看目录下已经有一个文件 email.txt

使用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

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

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

安装gclone

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

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

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

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

1
2
3
bash <(wget -qO- https://git.io/gclone.sh)
##方便使用gclone直接改名rclone(主要原来的脚本都叫rclone)
cp /usr/bin/gclone /usr/bin/rclone
  • 配置gclone
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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

img

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

1
2
3
4
5
6
7
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/

img

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

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

安装Fclone

项目地址

安装方法

  1. 下载对应版本的zip文件

  2. 在本地解压获得fclone文件

  3. 上传至/usr/bin目录里

  4. chmod +x /usr/bin/fclone来赋予权限(或者直接宝塔面板赋予fclone权限)

使用方法

把gclone改为fclone即可

命令

A:低配VPS推荐

1
--drive-server-side-across-configs --stats=1s --stats-one-line -vP --checkers=128 --transfers=128 --drive-pacer-min-sleep=1ms --check-first 

B:低配VPS推荐

1
--drive-server-side-across-configs --stats=1s --stats-one-line -vP --checkers=128 --transfers=256 --drive-pacer-min-sleep=1ms --check-first 

C:

1
--drive-server-side-across-configs --stats=1s --stats-one-line -vP --checkers=256 --transfers=256 --drive-pacer-min-sleep=1ms --check-first

D:

1
--drive-server-side-across-configs --stats=1s --stats-one-line -vP --checkers=256 --transfers=256 --drive-pacer-min-sleep=1ms --drive-pacer-burst=5000 --check-first

E:中高配独服以上推荐

1
--drive-server-side-across-configs --stats=1s --stats-one-line -vP --checkers=320 --transfers=320 --drive-pacer-min-sleep=1ms --drive-pacer-burst=5000 --check-first 

示例

1
fclone copy remote:{1} remote:{2} flag 

参数说明

1
2
3
4
5
6
7
8
9
10
11
12
13
 --drive-server-side-across-configs #服务端传递

--stats=1s --stats-one-line -vP #日常参数

--checkers=数字 #越大越快

--transfers=数字 #越大越快

--drive-pacer-min-sleep=数字ms #越小越快

--drive-pacer-burst=数字 #越大越快

--check-first #fmod必须参数

部署Icopy

创建TG_BOT

首先创建一个TG Bot,在搜索框输入@BotFather,并点击进入对话。

创建机器人_1

点击输入框位置的“开始/Start”,它会给你发送一条消息告诉你如何使用,我们直接输入/newbot开始创建,然后依照它的回复提示,我们接着依次输入我们为Bot设置的昵称和用户名,注意用户名必须以bot三个字母作为结尾,如下图:

设置Bot名称

一切设置完毕后,他会发过来一个消息告诉我们Bot创建成功,并附上了Bot的token(红框部分),这是稍后连接Bot的通行证,我们将这段token复制下来先粘贴到其他地方保存下来以备后面使用。

获得token

获取USER_ID

在搜索框输入@userinfobot,并点击进入对话。进入对话窗口后,点击输入框位置的“开始/Start”,它会给出你的ID,我们将Id后面的数字复制下来,先粘贴到其他地方保存下来以备后面使用。

获取USERID

创建在线MongoDB数据库

打开MongoDB官网,点击Start free,填入相关信息进行注册。

注册MangoDB

注册成功后,在下图界面选择FREE套餐。

选择免费计划

下面选择数据库的地理位置,这个要选择离你VPS位置最近的地方,就比如我的VPS位置是日本东京,所以我就选择了GCP的Tokyo位置的数据库。下方的Cluster Name是数据库名称,我这里保持了默认。

选择数据库位置

接下来需要等待1-3分钟才可以创建完成,创建完成后,我们点击网页中的CONNECT。

设置DB

下面进行设置,首先添加允许连接数据库的IP,你有两种选择:你可以只允许你的VPS连接数据库,那就点击红色箭头指的“Add a Different IP Address”;也可以允许来自任何IP的连接,那就点蓝色箭头指的“Allow Access from Anywhere”。此处我按照第一种选择来,只允许我的VPS连接数据库。

img

输入你的VPS的IP(如果你选择允许所有IP的连接,这个框里会自动填好内容),点击Add IP Address,

然后在下面设置好数据库的用户名和密码记好,之后要用到。

img

然后我们点击右下角绿色的“Choose a connection method”进入下一步,这里我们选择第二个“Connect your application”。

img

来到这一步,我们把“DRIVER”选择为Ptyhon,VERSION选择3.6 or later,然后将红框内文字内容中“@”之后的内容复制下来(图中涂黑部分),这就是数据库地址,粘贴到其他地方留着一会儿使用,注意其中的<dbname>要更换成你的数据库名称,我之前创建的时候保持了默认,就是Cluster0,数据库地址示例如下:

cluster0.avbqq.gcp.mongodb.net/Cluster0?retryWrites=true&w=majority

img

安装Icopy

下载Icopy源码

1
git clone https://github.com/fxxkrlab/iCopy.git && cd iCopy

设置权限

1
chmod +x iCopy.py

安装依赖

1
2
3
4
5
pip3 install -r requirements.txt

# centos7更改pip软链后直接pip安装即可

pip install -r requirements.txt

生成配置文件

1
cp config/conf.toml.example config/conf.toml

编辑配置文件

1
nano config/conf.toml

按图所示进行修改

img

修改后依旧Ctrl+X保存,按键盘Y确定保存,然后按回车(Return)保存成功。

我们可以试运行一下脚本,看能不能启动成功

1
python3 iCopy.py

出现几个warning不要紧,只要出现图中红框部分的那一行字,就算运行成功。

启动成功

安装screen

成功运行后一旦断开ssh后就会马上掉线,因此需要安装screen

安装screen

1
yum install screen

创建一个新的窗口

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

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

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

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

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

后台启动Icopy

1
screen -dmS iCopy `which python3` iCopy.py

停止运行

1
screen -X -S iCopy quit

导入机器人指令

现在的机器人只是启动成功了,但是还无法正常使用,我们需要手动导入指令,在TG找到@BotFather,发送/mybots,选择你刚刚创建的bot。

img

复制下面的文本,按下图所示添加指令

1
2
3
4
5
6
7
8
9
10
11
12
13
menu - 主入口/选择模式
quick - 极速模式
copy - 自定义模式
set - 自定义设置
cancel - 取消对话
size - 查询大小
reset - 重置任务(后面可跟id)
dedupe - 删除重复文件
purge - 清空指定盘回收站
task - 任务查询
kill - 杀死进程中任务
ver - 检查iCopy版本
restart - 重新启动iCopy

添加指令

然后你就可以使用完整命令的Bot了。

bot转存命令

设置转存文件夹

在TG聊天窗口给Bot发送/set quick + 文件夹ID以添加一个(最多一个)快速转存文件夹

在TG聊天窗口给Bot发送/set quick - 文件夹ID以删除一个(最多一个)快速转存文件夹

在TG聊天窗口给Bot发送/set fav + 文件夹ID以添加一个(数量无上限)书签文件夹

在TG聊天窗口给Bot发送/set fav - 文件夹ID以删除一个(数量无上限)书签文件夹

转存实操

设置好至少一个转存文件夹后,我们就可以开始转存操作了。

快速转存:发送/menu,选择极速模式,发送分享链接

img

自定义模式同理,只是多了一步选择目标位置(从添加的书签文件夹里选)。

Icopy开机自启

创建启动脚本:

1
2
cd /root/iCopy
nano start.sh

输入以下内容,并保存文件。

1
2
3
4
#! /bin/bash

cd /root/iCopy
python3 iCopy.py

赋予权限:

1
chmod +x start.sh

将以下代码一起复制到SSH运行

1
2
3
4
5
6
7
8
9
10
11
cat > /etc/systemd/system/icopy.service <<EOF
[Unit]
Description=icopy
After=network.target

[Service]
ExecStart=/root/iCopy/start.sh

[Install]
WantedBy=multi-user.target
EOF

然后启动服务并设置开机自启

1
2
systemctl start icopy
systemctl enable icopy

推荐教程,iCopy和fclone和TG-bot构建gd转存保姆教程