TypechoJoeTheme

一个梦想 | A Dream

统计

iCopy安装配置图文教程

2020-07-22
/
3 评论
/
239 阅读
/
正在检测是否收录...
07/22
iCopy是通过Telegram发送相关指令到Telegram BOT,然后通过fclone对相关资源进行复制,统计,查找重复等便捷操作的一个开源项目。

注意:iCopy所需要Python版本为3.6以上,所使用数据库为Mongodb


最新版:Latest Version : v0.2.2-Post.2
默认访问地址:http://ip:8000
默认访问用户名密码:admin/admin
修改默认用户名密码:在TG里输入:/set web 设置用户名密码,格式为用户名,密码

1.TG方面准备

1.1 建立Bot机器人

TG的Bot token和自己TG账号的ID(非账号和名称)

1.2 获取Bot token

Bot token通过@BotFather获得,输入/newbot、输入机器人名称、输入机器人用户名(以*bot结束),成功,获得
Use this token to access the HTTP API:
12345678:**

1.3 获取TG ID

TG ID在搜索框输入@get_id_bot 或@userinfobot得到

2.安装或升级Python3.8版本

https://www.yigmx.com/python3.html

3.数据库方面

icopy需要搭配MongoDB数据库,此数据库有本地版和网络免费版,网络版提供了512MB的免费存储空间。可以到官方网站mongodb了解。
网络版免费注册地址:https://www.mongodb.com/cloud/atlas/signup

3.1 本地安装

具体安装教程请参考:本地安装及网络安装mongodb
https://www.yigmx.com/mongodb.html

3.2 网络安装

具体安装教程请参考:本地安装及网络安装mongodb
https://www.yigmx.com/mongodb.html

4.fclone方面

4.1 安装fclone

安装解压工具

apt-get install unzip

下载fclone

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

4.2 配置fclone config

或:

vi /root/.config/rclone/rclone.conf

vi 修改后保存并退出:按i——粘贴——按Esc键——输入:wq!——回车
vi 修改后不保存退出:按Esc键——:q!——回车

或:

nano /root/.config/rclone/rclone.conf

nano 修改保存操作:使用快捷 Ctrl+X,然后会提示输入 Y,然后回车!

保存和退出
如果你要保存所做的修改,按下Ctrl+O。想要退出,按下Ctrl+X。如果你退出前没有保存所做的修改,它会提示你是否要保存。如果不要,请按N,反之,则按Y。然后它会让你确认要保存的文件名,确认或修改后按Enter即可。
如果你没有修改好而不小心按了保存键,您可以在请求确认文件名时按Ctrl+C来取消。
[gc]
type = drive
scope = drive
service_account_file = /root/accounts/1.json
service_account_file_path = /root/accounts/

第一行 [gc] 是remote的名字,你可以修改成任何名字。但改了后conf.toml也需要跟着更改。
第四行 service_account_file 是指定你其中一个sa。
第五行 service_account_file_path 是你sa文件夹的路径。注意后面必须要有 / 斜杠。

fclone config show 检查是否成功!

4.3 上传json文件

上传json文件到/root/accounts

5.iCopy方面

5.1 git clone icopy

通过git clone icopy克隆最新版本下来

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

5.2 设置权限

chmod +x iCopy.py

5.3 安装需要的模块

pip3 install -r requirements.txt

如果提示-bash: pip3: command not found,请安装:
安装pip

apt update -y 
apt upgrade -y 
apt install python3 python3-pip --upgrade 
pip3 install --upgrade pip 

查看版本
pip3 --version

5.4 复制一份配置文件

cp iCopy/config/conf.toml.example iCopy/config/conf.toml

5.5 修改配置文件

nano config/conf.toml


iCopy网络版数据库 conf.toml中的数据库的链接内容按照以下格式填写

db_connect_method = "mongodb+srv"
db_addr = "cluster0.avbqq.gcp.mongodb.net/Cluster0?retryWrites=true&w=majority"
db_port = 27017
db_name = "iCopy"
db_user = "注册数据库时创建的account"
db_passwd = "创建的account的密码"

iCopy本地版数据库 conf.toml中的数据库的链接内容按照以下格式填写

db_connect_method = "mongodb"
db_addr = "localhost"
db_port = 27017
db_name = "iCopy"
db_user = "安装数据库时创建的account"
db_passwd = "创建的account的密码"

注:
1.db_connect_method 的 mongodb+srv 换成mongodb
2.db_addr 填入 localhost
3.db_user 和 db_passwd 换成建立mongodb数据库时设置的用户名和密码

5.6 启动脚本

5.6.1 python启动
python3 iCopy.py

5.6.2 screen方式启动
screen -dmS iCopy `which python3` iCopy.py

如果提示:-bash: screen: command not found
请安装:yum install screenapt-get install screen

cd iCopy && screen -dmS iCopy `which python3` iCopy.py
5.6.3 screen删除会话
screen -X -S [session # you want to kill] quit
[[email protected] ~]# screen -ls
There are screens on:
9975.pts-0.localhost (Detached)
4588.pts-3.localhost (Detached)
2 Sockets in /var/run/screen/S-root.
[[email protected] ~]# screen -X -S 4588 quit
[[email protected] ~]# screen -ls
There is a screen on:
9975.pts-0.localhost (Detached)
1 Socket in /var/run/screen/S-root.

可以看到,4588会话已经没有了。

5.6.4 screen查看输出

Screen方式启动查看输出:

screen -r

5.7 fclone 命令操作

大于1G内存的vps,就用以下这个,小于1G的把里面的2个400改成200,不需要gclone。
remote就是你配置文件的名,比如:gc

fclone copy remote:{src} remote:{dst} --drive-server-side-across-config -P --check-first --drive-pacer-min-sleep=1ms --checkers=400 --transfers=400 --stats=1s --log-level=DEBUG --log-file=/root/fclone_debug.log

然后看下速度,打开另一个ssh窗口,输入:tail -f /root/fclone_debug.log

5.8 配置推荐

iCopy教程之配置推荐
https://www.yigmx.com/854.html

6. 升级更新

cd iCopy && git pull

如果是v0.2.0-beta.6.7及之前的版本升级到v0.2.1-Post.5之后的版本:
请重新安装

pip3 install -r requirements.txt

请重新修改conf.toml配置文件
将最后一行:

run_args = ['-P', '--ignore-checksum' , '--stats=1s', '--log-level=DEBUG', '--log-file=/root/icopy_cloner_debug.log'] # status flags

A. 修改为:

run_args = ['--log-level=DEBUG', '--log-file=/root/icopy_cloner_debug.log'] # status flags
    
[web]
    
dashboard = 1 # web service switch
    
port = 8000 # web service port, default is 8000.

B. 修改为(进阶):(如果你SA不多,请忽略B,用A的默认配置,本人2万SA用5000的值,供参考)

run_args = ['--log-level=DEBUG', '--log-file=/root/icopy_cloner_debug.log', '--drive-pacer-burst=5000'] # status flags

[web]

dashboard = 1 # web service switch

port = 8000 # web service port, default is 8000.

C. 或者先备份好旧版conf.toml

mv conf.toml conf.toml.bak

D. 然后复制生成一份新的conf.toml

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

编辑新版conf.toml 将参数搬过来
最后dashboard = 0 # web service switch 其中的0改为1

7. 网页登陆信息

默认访问地址:http://ip:8000
默认访问用户名密码:admin/admin
修改默认用户名密码:在TG里输入:/set web 设置用户名密码,格式为用户名,密码

8. 命令列表

首先 切记bot不需要/start启动,当你启动脚本的那一刻tg里的bot已经在运作。
/menu 进入copy或quick模式选择
/set rule 显示添加目标id规则
/set quick + 目标id(可以是盘/文件夹id)
/set fav + 目标id(可以是盘/文件夹id) (这是设置收藏夹id,可以设置多个目标id。设置好第一个,会返回成功,之后再/set fav + 来添加第二个)
/set list 显示已添加的收藏夹
/set purge 清除所有在收藏夹的目标 id
/set web 设置用户名密码
/restart 重启bot
/kill 取消正在复制的任务
/cancel 取消当前选择 (如果你输入/menu发现没设置收藏价或快捷目录,那你就能输入/cancel取消当前进程。
/task 显示正在复制的任务
/task list 显示等待复制的任务
/reset 重置任务状态,可以/reset 99 指定任务id。
/size 测量文件夹ID 总大小和数量。
/dedupe 去除重复文件
/purge 清除盘的垃圾箱

根命令列表:
botfather——/——setcommands——选择你的机器人——粘贴以下命令
(botfather只支持根命令不支持子命令设置)

menu - 选择模式
quick - 快速模式
copy - 完整模式
set - 自定义设置
task - 任务查询
cancel - 取消对话
kill - 杀死进程中任务
size - 统计信息
ver - 检查 iCopy 版本
reset - 重置任务
restart - 重新启动 iCopy
dedupe - 去除重复文件
purge - 清除盘的垃圾箱

使用方式

A. 脚本启动后,到bot里先输入/set rule 查看如何添加链接。以下示例如何添加收藏夹

  1. /set fav + 1xiMAbezD0fgNl0SqngmV7QEJ1PuScxx0
  2. 添加成功会有提示成功。如果要继续添加就重复步骤。
  3. 输入/menu进入选择复制模式。也可以直接/quick 或 /copy 选择。
  4. 选择了模式之后,会提示粘贴要复制的链接,粘贴后回车添加任务。
  5. 提示“添加任务成功”并开始复制。

B. 如果提示没设置目标id,请/cancel 或 直接/restart重启bot。退出去,输入/set rule
C. 出现如何添加提示后开始添加
D. 复制任务时,如果时间太久,先确认复制的文件夹数量是否很多,太多会时间久点。建议第一次复制任务时,选择数量少的文件测试。如果确认是真的卡住了,先查看shell那里有否有错误提示,然后打开/root/icopy_cloner_debug.log检查fclone输出的日志。

9. 查看日志

TG里/copy,/quick等操作,如果卡住,或感觉异常,可以在VPS里输入:

tail -f /root/icopy_cloner_debug.log

追踪日志,如果自己无法解决,可以把日志截图上传到相关群里请教别人。

定时删除LOG

crontab -l
0 3 * * * rm /root/ic/iCopy/config/icopy_cloner_debug.log

每天三点删除log文件

10. 删除文件

10.1 不放入回收站直接删除文件

fclone delete XXX盘号: --drive-use-trash=false --transfers=500 -vvP

10.2 删除回收站文件

fclone delete XXX盘号: --drive-trashed-only --drive-use-trash=false --verbose=2 --fast-list

XXX盘号 是你挂载那个盘的名称

10.3 大佬プロの冒険者的方法

10.3.1 方法一
fclone delete remote:{ID} --rmdirs --checkers=INT transfers=INT --drive-pacer-min-sleep=1ms --drive-trashed-only --drive-use-trash=false -P
10.3.2 方法二

(如果“方法一”rmdirs没有生效)

fclone rmdirs remote:{ID} --checkers=INT transfers=INT --drive-pacer-min-sleep=1ms --drive-trashed-only --drive-use-trash=false -P

需要信息也可以-vP或者-vvP

11. 相关错误说明

11.1 403错误

11.1.1 API超出限制


是因为一些限制超出范围,谷歌返回错误,拒绝你的请求。出现这种错误可以不用管。

error googleapi: Error 403: User rate limit exceeded.,userRateLimitExceeded

API爆了,SA太少,增加SA

11.1.2 共享盘满了
Failed to copy: googleapi: Error 403: The file limit for this shared drive has been exceeded., teamDriveFileLimitExceeded

共享盘满了,共享盘有文件40万的限制。而且回收站的文件也算。

11.1.3 项目没有授权

如果日志里发现很许多要授权的SA,如果少,可以点击打开或复制到浏览器里打开,然后同意并获取授权。
如果非常多可以通过以下方法授权(AutoRclone-master里的gen_sa_accounts.py),可以反复多次,如果依然没效,只能手动去开启了。

列出所有项目名称:

python3 gen_sa_accounts.py --list-projects

项目授权

python3 gen_sa_accounts.py  --enable-services 项目名称

11.2 500错误


出现403后,而你继续不理,一直这样,它就直接拒绝,返回500。出现500要停止操作,调整以下三个地方的数值再重新开始。
--check­ers = 数字 #越大越快
--trans­fers = 数字 #越大越快
--drive-pacer-burst = 数字 #越大越快
具体可参考:5.8 配置推荐

11.3 too many open file错误

如果日志里遇到too many open file错误,请修改:

nano 修改保存操作:使用快捷 Ctrl+X,然后会提示输入 Y,然后回车!
保存和退出
如果你要保存所做的修改,按下Ctrl+O。想要退出,按下Ctrl+X。如果你退出前没有保存所做的修改,它会提示你是否要保存。如果不要,请按N,反之,则按Y。然后它会让你确认要保存的文件名,确认或修改后按Enter即可。
如果你没有修改好而不小心按了保存键,您可以在请求确认文件名时按Ctrl+C来取消。

step 1)

nano /etc/sysctl.conf

添加以下行

fs.file-max = 6553500

保存退出执行以下命令

sysctl -p

step 2)

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

保存退出
step 3)

nano /etc/pam.d/common-session

添加以下行

session required pam_limits.so

保存退出,最后重启系统登录查看

ulimit -a

12. 开机启动

iCopy教程之设置开机启动
https://www.yigmx.com/848.html

13. 谷歌群组人数和内容数量限制

一个共享云端硬盘最多可包含 40 万个文件和文件夹。

更多请参考:https://support.google.com/a/answer/7338880?hl=zh-Hans

iCopy
朗读
赞(0)
赞赏
感谢您的支持,我会继续努力哒!

三合一收款

下面三种方式都支持哦

微信
QQ
支付宝
打开支付宝/微信/QQ扫一扫,即可进行扫码打赏哦
版权属于:

一个梦想 | A Dream

本文链接:

https://www.yigmx.com/icopy.html(转载时请注明本文出处及文章链接)

评论 (3)
  1. zexi 作者
    Windows 10 · Google Chrome

    ERROR - Error while getting Updates: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running 这个错误怎么办

    2020-09-02 回复
    1. 醉书生 作者
      Windows 10 · Google Chrome
      @zexi

      你打开两个进程了

      2020-09-09 回复
  2. 幕落散场 作者
    Windows 10 · Google Chrome

    这篇 ICOPY 教程是我见过所有面向新手教程中最全面的,语言简练,排版简洁,新手容易掉坑的细节都有提到,感谢博主,让那些徘徊在技术的门槛上观望的萌新也能体验到技术的魅力。

    2020-08-16 回复