文章目录
视频教程观看和下载地址(版本更新较大,视频仅作参考):
2020-8-24更新:
更新本教程命令,关于版本变化请查看:
iCopy升级到- v0.2.1-beta.1及后变化(个人建议不推荐升级)
2020-7-22更新:
1.更新获取和使用icopy脚本命令。 2.更新TG-bot菜单命令。 3.更新博客日志部分文章设置顺序,使其更加符合逻辑。 4.更新iCopy - v0.2.0-beta.1及之前版本如何获取最新版本的教程
2020-7-31更新:
更新命令
一、准备(不讲)
1.bot-id:
bot通过@BotFather获得,输入/newbot、输入机器人名称、输入机器人用户名(以***bot结束),成功,获得
Use this token to access the HTTP API:
12345678:****
(红色部分即需要使用的bot id)
2.你自己的用户id
获得方法自己谷歌
3.sa账号群组(autoclone获得)且已经加入你的TD,是内容管理员权限。
不讲
4.使用ssh工具:
二、环境
1.ubuntu18.04*64( V(以下简称v。)。。ps或者虚拟机安装,虚拟机全程可连全球,懂的都懂)
①安装ubuntu 18.04x64(略)
使用MobaXterm v20.0中文汉化专业版 ssh连接登录 注意全程使用root账号操作
2.python3.7
②安装python3.7
参考文章:Ubuntu18.04x64更新Python3.7,并改变python3指向,和遇到的坑
3.screen
③安装screen
参考文章:Ubuntu安装screen
输入screen -ls
查看是否安装screen
说明已经自动安装
若遇到错误bash: screen: command not found
,那就是说明没有安装.根据参考文章自行安装
三、开始安装
使用mongodb数据库有两种方法,
使用本地化mongodb或者使用服务器mongodb
服务器mongodb教程请看(强烈推荐):iCopy深度理解创建思路日记
参考文章:
1.本地化安装 mongodb 教程完整步骤
2.iCopy v0.2.0a13 安装教程
①本地化安装mongodb
1.通常组建升级以及安装
复制,粘贴
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
2.修改系统 ulimit 限制 根据以下步骤做一遍
step 1)
nano /etc/sysctl.conf
添加以下行
fs.file-max = 6553500
保存ctrl+x
,y
,enter
退出执行以下命令
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
保存退出,重新登录SSH查看
ulimit -a
3.接下来我们要对 mongodb 进行开启账号密码验证及授权
首先打开 2个 SSH 登录到你的VPS 同时登录2个窗口
窗口1)仅输入以下命令作为临时启动
mongod --port 27017 --dbpath /var/lib/mongodb
窗口2)输入以下命令
mongo --port 27017
以下步骤均在窗口2中操作
1)创建用户 自行填写并记住下面的 account 和 passwd ,确认无误后回车
use admin
db.createUser(
{
user: "account",
pwd: "passwd",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)
2)添加用户后输入以下命令重启一次mongod 显示failed正常不用管
db.adminCommand( { shutdown: 1 } )
3)退出mongo shell 2 次 ctrl + c
ctrl + c
ctrl + c
4)此时之前打开的窗口1)也可以关闭退出了
4.继续编辑配置文件
nano /etc/mongod.conf
复制以下内容至配置文件
security:
authorization: enabled
修改以下内容
bindIp: 0.0.0.0
保存退出
重新授权文件属性
cd /var/lib/mongodb
sudo chown -R mongodb:mongodb *
返回根目录
cd ~
5.对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 v0.2.0–
请准备好python3.6+ 版本,直接3.7/3.8版本会更好。(前文已经准备好)
1.安装fclone。
1)安装解压工具
apt install unzip
2)下载fclone
bash <(wget -qO- https://git.io/JJYE0)
3)解压刚才下载的fclone
unzip fclone-v0.3.1-linux-amd64.zip
4)移动 解压得到的fclone到/usr/bin
mv /root/fclone-v0.3.1-linux-amd64/fclone /usr/bin
3)设置fclone权限为777
4)上传json文件到/root/accounts/sa
根据下文你设置的配置文件信息设置sa文件路径
作者本人是在 /root中创建/accounts/sa文件夹,在里面上传了我的所有的sa的json文件
上传方法有很多,我就不多做演示了,不会百度吧
一定要记好.json文件所在位置,下文配置要用到!
4)配置fclone
方法一(复杂):输入 fclone config
- 第一步选择 n ,然后给remote新的名这里用 gc ",一定要记好,下文配置要用到
- 第二部选择 13,client_id 和 client_secret 默认不填。
- 第三步选择 scope 填1 ,root_folder_id 默认不填。
- 第三步重要关键的一步打开左边文件夹,找到root/accounts/sa 下的任意 json 文件右键复制路径如 /root/accounts/sa/02d62cb52b2ac72d2c78c5b1b529b202acaf591a.json
(一定要注意sa_path位置和你设置的.json所在目录目录一样!!!这一步很容易出错!) - 第五步 service_account_file_path> 填入 /root/accounts/sa/ (别忘了最后还有个斜杠“/”,这一步很容易出错!)
- 第六步 Edit advanced config? (y/n) 选择 n .
- 第七步 Configure this as a team drive? 填 y .什么都不填,回车
-第八步 Y,q
方法二(简单):直接创建一个rclone.conf,权限设置为600
放在/root/.config/rclone/下
内容为
[gc] # 这里填你的remote文件名
type = drive
scope = drive
service_account_file = /root/accounts/sa/001cdcb95678b4ff183bccccc4486872a052cb61.json # 这里填你sa文件所在的目录中的随便一个json文件
service_account_file_path = /root/accounts/sa/ # 这里填你sa文件目录,
team_drive =
只需改service_account_file和service_account_file_path,其他不用管
2.然后把icopy 0.2.0a11 用git clone下来
1.获取
git clone -b _0_2 https://github.com/fxxkrlab/iCopy.git
2020-7-22 更新:获取iCopy - v0.2.0-beta.4.1
cd ~
git clone https://github.com/fxxkrlab/iCopy.git
2.复制一份示例配置文件(conf.toml.example)
cp iCopy/config/conf.toml.example iCopy/config/conf.toml
3.修改配置文件(conf.toml)
注:iCopy conf.toml中的数据库的链接内容按照以下格式填写
db_connect_method = "mongodb"
db_addr = "localhost"
db_port = 27017
db_name = "iCopy"
db_user = "你上面填写的account"
db_passwd = "你上面填写的密码"
把
1.db_connect_method 的 mongodb+srv 换成mongodb
2.db_addr 填入 localhost
3.db_user 和 db_passwd 换成刚才mongodb数据库设置的用户名和密码
设置好后保存退出
5.配置好后 我们就准备安装模块
cd iCopy
下面这两个指令是进入虚拟环境,可以避免些问题。如果你认为不需要可以跳过。
python3 -m venv .
. ./bin/activate
安装需要的模块
apt install python3-pip
y回车
pip3 install oauth2client
2020-8-24更新(新增代码):
apt-get install python3-dev
apt-get install python3.6-dev
sudo apt-get install python3.7-dev
2020-7-22更新(新增一串代码):
chmod +x iCopy.py
回车
pip3 install -r requirements.txt
回车
更新icopy为最新版
git pull
确认安装完成 没有任何报错 就可以启动脚本
python3 iCopy.py
启动后如果报错提示 The “dnspython” module must be installed to use mongodb+srv 就安装
pip3 install pymongo[srv]
如果使用中出现下图的警告,不影响使用。只要每次添加id(目标/源)都会提示一次,所以无视就好.
进入机器人进行测试
有问题自行百度解决
③设置screen中开启
参考文章:
linux 技巧:使用 screen 管理你的远程会话
Linux 下screen命令的使用
方法一:
建立
screen -dmS icopy
进入
screen -r icopy
开启icopy脚本
cd /root/iCopy
python3 iCopy.py
2020-7-22更新:方法二(简单):
cd ~
cd iCopy
screen -dmS iCopy `which python3` iCopy.py
完成!愉快玩耍吧!
④其他亿些细节
1.升级
必须进入iCopy目录才能升级
cd iCopy
git pull
2.看fclone 的错误日志(无错误不会生成)
/root/icopy_cloner_debug.log
3.根命令列表:(可通过botfather中的/setcommands进行设置)
2020-7-22更新:
2020-7-31更新:
(botfather只支持根命令不支持子命令设置)
start - 主入口 选择模式 (iCopy - v0.2.0-beta.2及以后版本不再支持)
menu - 主入口/选择模式
quick - 极速模式
copy - 自定义模式
set - 自定义设置
cancel - 取消对话
size - 查询大小
reset - 重置任务(后面可跟id)
dedupe - 删除重复文件
purge - 清空指定盘回收站
task - 任务查询
kill - 杀死进程中任务
ver - 检查iCopy版本
restart - 重新启动iCopy
4.子命令列表:
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 - 终止清除重复文件
5.如何设置v重启时脚本自动开启
自行百度crontab,systemd 启动服务
参考教程(仅粉丝可见):iCopy日记,开机自启
⑤2020-7-22更新:iCopy - v0.2.0-beta.1及之前版本如何获取最新版本
以iCopy - v0.2.0-beta.1为例子:由于作者更换了分支,所以需要更改分支(懒人直接rm-吧)
为防止意外,建议备份conf.toml
1、使用screen名字,kill掉。
screen -S session_name -X quit
例如:
screen -S iCopy -X quit
2.更改分支
参考文章:git命令-切换分支
cd iCopy
查看远程分支
git branch -a
查看本地分支
git branch
切换分支
git checkout -b master origin/master
最后感言
感谢各位大佬的无私帮助我才能有这个教程!再次感谢sharegdrive群组里的各位大佬!也感谢作者们的辛勤付出!项目地址:iCopy , fclone