最近入门 PT,家中宽带上行 20M,不快不慢,所以自建了个 Seedbox,使用的下载方案是 qBittorrent+FlexGet+Auto Remove Torrents,FlexGet 使用 PT 站 RSS 链接自动下载种子至服务器并使用 qBittorrent 自动下载,下载完成后根据条件使用 Auto Remove Torrents 自动删除,以实现无需人工干预,自动刷流量。 写作本文的初衷是部署过程中发现目前的教程都相对简单,对新手不算友好,部署过程中出现的问题都得不到解答,而软件官方教程为英文,相比中文门槛较高。 本文内容全部参考两软件的官方教程,删减不必要部分,并亲自验证可行性。未参考任何非官方教程。参考链接见文末。 创建服务。 输入以下内容。 root 指的是系统当前用户名,根据自己的实际情况更改。 IP 地址为服务器地址,登录后可在设置中将 Web UI 设置成简体中文,更改用户名和密码等。 升级方法与安装方法一致。 FlexGet 支持的 Python 版本为 2.7,3.3 到 3.5,Auto Remove Torrents 只支持 3.x,为了方便,FlexGet 也使用 Python 3.x 安装,若版本不正确,可升级 Python,若版本正确,无需操作。 FlexGet 支持众多插件,下文只列出本人用到的,其他插件用法可参见文末插件链接。 regexp 为正则表达式筛选插件。 content_size 为按内容大小进行筛选的插件。 此设置为接受 12m~1200m 大小的内容。 qbittorrent 设置插件。 例如位置为 /usr/local/bin/flexget。 使用 nano 编辑,输入以下内容。 保存退出。其中 2 是指 2 分钟运行一次,可任意设置。 参见上文 “配置”。 访问 Web UI,必须开启守护进程。 访问 http://ip:50001 即可,用户名为 flexget,密码为设置密码。 编辑 crontab,输入以下内容。 若安装出现错误,可升级 Python、pip 与 setuptools 尝试解决,升级方法见上。 FlexGet 日志级别包括 critical,error,warning,info,verbose,debug,trace。 Web UI 默认显示 info 及以下级别。若需开启其他级别,可使用以下命令。 如 如需要 Web UI 显示 verbose 及以下级别的日志,开启守护进程的命令变为。 守护进程开启自启的命令变为。 Auto Remove Torrents 需要 Python 3,不支持 Python 2。需安装 Python 3、pip 3,安装方法参见上文 FlexGet 中的安装方法。 配置文件因与 FlexGet 配置文件同名,故不可放在 root 目录下,否则会被 FlexGet 识别。 配置文件可以分为 4 部分,示例如下: 任意。 任意。 过滤器用于选择删除条件会对哪些种子有效,而其它种子不受删除条件的影响。 确定是否在删除种子时同时删除数据。如果此字段未指定,则默认值为 false。 编辑 crontab。 使用 nano 编辑,在出现的界面添加以下内容: 可根据需求设置自动运行的时间间隔。 FlexGet 与 Auto Remove Torrents 同时运行,可能会导致 qBittorrent 崩溃。 以上即为部署 qBittorrent、FlexGet、Auto Remove Torrents 的详细方法。部署完毕后会自动下载 PT 种子并下载文件及删除。
前言
初衷
环境
一、qBittorrent
(一)安装
1
2
3add-apt-repository ppa:qbittorrent-team/qbittorrent-stable
apt-get update
apt-get install qbittorrent-nox(二)创建服务
1
vim /etc/systemd/system/qbittorrent.service
1
2
3
4
5
6
7
8
9
10
11[Unit]
Description=qBittorrent Daemon Service
After=network.target
[Service]
User=root
ExecStart=/usr/bin/qbittorrent-nox
ExecStop=/usr/bin/killall -w qbittorrent-nox
[Install]
WantedBy=multi-user.target(三)运行
1. 启动
1
systemctl start qbittorrent
2. 停止
1
systemctl stop qbittorrent
3. 开机自启
1
systemctl enable qbittorrent
4. 查看运行状态
1
systemctl status qbittorrent
5. 访问 Web UI
1
2
3默认地址: http://IP地址:8080
默认用户名: admin
默认密码: adminadmin(四)升级
二、FlexGet
(一)准备
1. 安装升级 Python
(1)查看版本
1
python3 -V
(2)升级
1
2apt-get update
apt-get install python32. 安装升级 pip
(1)查看版本
1
pip3 -V
(2)安装
1
2apt-get update
apt-get install python3-pip(3)升级
1
pip3 install -U pip
3. 安装升级 setuptools
(1)安装
1
2apt-get update
apt-get install python3-setuptools(2)升级
1
pip3 install -U setuptools
4. 安装升级 nano
(1)查看版本
1
nano -V
(2)安装与升级
1
2apt-get update
apt-get install nano(二)安装
1. 查看 FlexGet 版本
1
flexget -V
2. 安装
1
pip3 install flexget
(三)配置
1. 创建配置目录
1
mkdir /root/.flexget
2. 创建并编辑配置文件
1
nano /root/.flexget/config.yml
3. 配置与运行
(1)示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25tasks:
test task:
rss: http://mysite.com/myfeed.rss
accept_all: no
regexp:
accept:
- good.stuff
reject:
- bad.things
from: title
content_size:
min: 12
max: 1200
strict: no
download: /home/me/watchdir/
qbittorrent:
port: 8080
username: admin
password: adminadmin
path: /media/disk/downloads/
web_server:
bind: 0.0.0.0
port: 50001
web_ui: yes
run_v2: yes(2)基本配置
1
2
3
4tasks:
test task: #任务名称,可任意起
rss: http://mysite.com/myfeed.rss #rss地址
download: /home/me/watchdir/ #rss订阅的下载位置(3)accept_all
1
accept_all: no #是否接受所有条目,接受为yes,不接受为no
(4)regexp
1
2
3
4
5
6regexp:
accept: #接受内容,多个条件写为多行。无条件可删除此项
- good.stuff
reject: #拒绝内容,多个条件写为多行。无条件可删除此项
- bad.things
from: title #删选位置,title为标题(5)content_size
1
2
3
4content_size:
min: 12 #最小值,单位为m。
max: 1200 #最大值,单位为m。
strict: no(6)qbittorrent
1
2
3
4
5qbittorrent:
port: 8080 #qBittorrent监听端口
username: admin #qBittorrent用户名
password: adminadmin #qBittorrent密码
path: /media/disk/downloads/ #qBittorrent下载地址(7)web_server
1
2
3
4
5web_server:
bind: 0.0.0.0 #本服务器IP或0.0.0.0
port: 50001 #监听端口,可任意设置
web_ui: yes #是否开启Web UI,开启为yes,关闭为no。
run_v2: yes #是否开启Web UI 2.0界面,开启为yes,关闭为no。4. 检查配置与手动运行
(1)检查配置文件是否正确
1
flexget check
(2)模拟手动运行
1
flexget –test execute
(3)手动运行
1
flexget execute
(4)查看任务运行状况
1
flexget status
5. 自动运行
(1)查询 FlexGet 安装位置
1
which flexget
(2)编辑 crontab
1
crontab -e
1
*/2 * * * * /usr/local/bin/flexget --cron execute
6. 配置 Web UI
(1)编辑配置文件
(2)设置 Web UI 密码
1
flexget web passwd <要设置的密码>
(3)开启守护进程
1
flexget daemon start -d
(4)停止守护进行
1
flexget daemon stop
(5)查看运行状态
1
flexget daemon status
(6)访问 Web UI
(7)开机自启守护进程
1
@reboot /usr/local/bin/flexget daemon start -d
(四)升级
1. 查看 FlexGet 版本
1
flexget -V
2. 通过 pip 升级
1
pip3 install -U flexget
3. 检查配置错误
1
flexget check
(五)常见问题
1. 日志显示
1
-L LEVEL
-L verbose 表示显示 verbose 及以下级别的日志。1
flexget -L verbose daemon start -d
1
@reboot /usr/local/bin/flexget -L verbose daemon start -d
三、Auto Remove Torrents
(一)准备
(二)安装
1. 查看版本
1
pip3 show autoremove-torrents
2. 安装
1
pip3 install autoremove-torrents
(三)配置
1. 创建编辑配置文件
1
2mkdir /root/autoremove-torrents
vim /root/autoremove-torrents/config.yml2. 配置内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27# 一个任务块
my_task: # 第一部分:任务名称
# 第二部分:登录信息
client: qtortorrent
host: http://127.0.0.1:9091
username: admin
password: adminadmin
# 第三部分:策略块(删除条件)
strategies:
strategy1: # 第1部分:策略名称
# 第2部分:过滤器
categories:
- IPT
# 第3部分:删除条件
ratio: 1
seeding_time: 1209600
strategy2:
all_categories: true
excluded_categories:
- IPT
seeding_time: 259200
# 这里可以添加更多策略
# 第四部分:决定是否同时删除数据(可选项)
delete_data: true
# 这里可以添加更多任务第一部分:任务名称
第二部分:登录信息
第三部分:策略块
1)策略名称
2)过滤器
3)删除条件
第四部分:删除数据
(四)运行
1. 模拟运行
1
autoremove-torrents --view --conf=/root/autoremove-torrents/config.yml
--conf=/root/autoremove-torrents/config.yml 为配置文件路径,若路径为默认,则可不写。下同。2. 运行
1
autoremove-torrents --conf=/root/autoremove-torrents/config.yml
3. 自动运行
1
crontab -e
1
*/2 * * * * /usr/local/bin/autoremove-torrents --conf=/root/autoremove-torrents/config.yml
(五)升级
1
pip3 install -U autoremove-torrents
已知问题
结语
参考资料
(一)qBittorrent
(二)FlexGet
(三)Auto Remove Torrents
更新说明
2018.08.20
2018.11.26
2020.01.07
最后一次更新于2022-02-28
