谷歌应用

iCopy + fclone搭建TG-bot的gd转存教程

黑色 · 8月4日 · 2020年 1256次已读

前期准备

  • @BotFather 申请tgbot,记录好token
  • @userinfobot 记录自己的id
  • autoclone生成sa并添加到团队盘,打包account下所有jason文件(参考本站其他有关autoclone和Google drive的文章)
  • vps重置好干净系统,以下操作以Ubuntu为例,其他系统自行更改
  • 可选:为方便操作(上传 下载 解压 编辑等)可安装宝塔面板
  • 本文参考自 https://blog.csdn.net/wojuzi/article/details/107444216https://www.yburger.net/skill/icopy.html 实操成功后再梳理整理。

环境搭建

  • 更新
apt-get update

安装python3.7

  • 查看python版本
ls -l /usr/bin | grep python
  • 版本3.7跳过安装,其他版本执行安装
apt-get install python3.7

安装screen unzip

apt-get install screen
apt-get install unzip

开始安装

本地化安装mongodb

  • 按顺序执行

复制,粘贴

sudo apt update -y
sudo apt upgrade -y
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
sudo apt-get install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org
  • 修改系统 ulimit 限制
nano /etc/sysctl.conf

添加以下行

fs.file-max = 6553500

command + x ,y保存,回车退出(下同),退出后执行

sysctl -p
  • 继续执行
nano /etc/security/limits.conf

复制添加以下,保存退出

* soft memlock unlimited
* hard memlock unlimited
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535

root soft memlock unlimited
root hard memlock unlimited
root soft nofile 65535
root hard nofile 65535
root soft nproc 65535
root hard nproc 65535
  • 继续执行(如文件未找到,自行创建)
nano /etc/pam.d/common-session

添加以下,保存退出

session required pam_limits.so
  • 退出ssh重新连接,执行 ulimit -a 查看

mongodb 开启账号密码验证及授权

  • 新建2个ssh窗口
  • 窗口 1 执行
mongod --port 27017 --dbpath /var/lib/mongodb
  • 窗口 2 依次执行
mongo --port 27017
use admin
db.createUser(
  {
    user: "account",
    pwd: "passwd",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)

account 和 passwd 可自行修改,记录好,对应修改

db.adminCommand( { shutdown: 1 } )

按2次 command + c后 ,关闭窗口 1

  • 继续编辑
nano /etc/mongod.conf

添加下行

security:
    authorization: enabled

修改 bindIp: 127.0.0.1 为 bindIp: 0.0.0.0,保存退出

  • 更新授权
cd /var/lib/mongodb
sudo chown -R mongodb:mongodb *
cd ~
  • 添加管理mongod服务

重新载入 mongod 服务

systemctl daemon-reload

设置开机启动

systemctl enable mongod

停止一次 mongod

systemctl stop mongod

开启 mongodb数据库

systemctl start mongod

至此 standalone mongodb 已经配置完毕

日常管理命令

systemctl start mongod
systemctl restart mongod
systemctl stop mongod
systemctl status mongod

安装icopy

  • 下载安装 fclone 并设置权限777(可面板找到 /usr/bin/fclon 文件修改)
bash <(wget -qO- https://git.io/JJYE0)
  • 上传准备好的sa文件到 /root/accounts/sa下 (如直接上传到accounts下,注意对应修改以下的配置)

配置 fclone

  • 方法一:执行 fclone config ,配置参见本站其他文章, service_account_file_path>的两项填入自己的sa json文件对应目录
  • 方法二(推荐):进入 /root/.config/rclone 目录,新建 rclone.conf 文件,权限设置为600,粘贴以下配置
[gc]  # 这里填你的remote文件名
type = drive
scope = drive
service_account_file = /root/accounts/sa/xxxxx.json # 这里填你sa文件所在的目录中的随便一个json文件 
service_account_file_path = /root/accounts/sa/ # 这里填你sa文件目录,
team_drive =

配置icopy

cd ~
git clone https://github.com/fxxkrlab/iCopy.git
  • 复制一份示例配置文件(conf.toml.example)
cp iCopy/config/conf.toml.example iCopy/config/conf.toml
  • 修改 conf.toml 如下对应的配置(可面板找到 root/iCopy/config/conf.toml 文件修改)
token = "你的tgbot记录的token"
use_id = "你记录的自己的tg id"

db_connect_method = "mongo"
db_addr = "localhost"
db_port = 27017
db_name = "iCopy"
db_user = "你上面填写的account"
db_passwd = "你上面填写的密码"

remote = "gc"

sa_path = "/root/accounts/sa"

安装模块

cd iCopy

下面这两个指令是进入虚拟环境,可以避免些问题。可以跳过。

python3 -m venv .
. ./bin/activate
  • 安装需要的模块
apt install python3-pip

按y回车

pip3 install  oauth2client
chmod +x iCopy.py

回车

pip3 install -r requirements.txt

回车,更新icopy为最新版

git pull

启动脚本

python3 iCopy.py
  • 设置screen中开启(二选一执行)
cd ~
cd iCopy
screen -dmS iCopy `which python3` iCopy.py

以上命令如有问题,可选择以下方式

screen -dmS icopy
screen -r icopy
cd /root/iCopy
python3 iCopy.py

至此完成,如需要升级icopy,执行以下

cd iCopy
git pull

tgbot配置

  • 进入自己的机器人,输入 /set 后输入以下命令设置转存目标
quick + 团队盘id/目录id
  • 根命令列表:(进入botfather界面,输入/setcommands 后粘贴以下设置)

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

  • 子命令列表:

set – 自定义设置
┖ set – 支持批量设置
┖ set rule – 查看规则
┖ set fav|quick +/- id – 单条收藏夹设置
┖ set purge – 清空所有收藏夹(慎重)
task – 任务查询
┖ task – 当前任务查询
┖ task list – 未来10条任务查询
┖ task id – 显示指定id任务
size – size query
┖ size – 查询大小
┖ size id – 指定id查询
┖ size fav – 收藏夹指定查询
dedupe – 删除重复文件
┖ dedupe – 删除收藏夹重复文件
┖ dedupe id – 删除指定id任务重复文件
┖dedupe rmdir – 清除根目录中的空文件夹
reset – 重新执行任务
┖ reset – 重新执行当前任务
┖ reset id – 重新执行指定id任务
kill – 终止进程
┖kill size – 终止查询大小
┖kill purge – 终止清空回收站
┖kill dedupe – 终止清除重复文件