qbittorrent、flexget和AMT配合使用,全自动的盒子配置

qbittorrent应该才是Linux下PT的正确打开方式,尽管网络上rutorrent备受推崇,transmission因为预装在许多nas上而成为许多人唯一知道的选择,但只要有机会选择,那些好用的东西,总会脱颖而出的。qb下载上传如此之快,甩其他客户端(不包括Deluge,没用过)不知几条街,几乎能连上所有的种子,但也会带来一些副作用,比如。。。cpu占用过高,自行取舍哈。

qbittorrent的另一个致命问题是,其webui不支持rss,可想而知对于盒子用户而言这是多么不可理喻的事情,但为了qb的高效率,还是忍了。。。由于懒的学习flexget,一直以来都是通过安装rutorrent来充当rss下载器,然后qb监控ru的.session种子文件夹来实现自动下载。后来,我的这个方法受到了严重挑战,一是不知道为何,qb在我的vps上难以修改watch folder,多番测试,结果都很玄学,可能与
配置文件的权限、是否先启动qb完成同意协议的过程并生成配置文件、浏览器缓存等等有关,试了好多次后,最终放弃;二是ru实在太卡了,即使只负责下载种子,作为一个强迫症患者,删除种子的时候都会卡死,是可忍孰不可忍,叔叔能忍,婶婶不能忍,那就ByeBye啦!

被逼无奈,最终捡起flexget,然后开启了新世界的大门!这玩意儿真的是非常便捷强大,比在rutorrent里写正则表达过滤方便太多了!!

最后要介绍的PT贴吧大神做的autoremove-torrents,真的是神器,最终实现了全自动无人值守的盒子配置。下面进入正题吧:

(本文所有命令均在Ubuntu 16.04 x64下运行,理论上讲18.04也可以,14.04主要是apt和
apt-get的区别,均在root用户下,/root/目录下运行)

安装qbittorrent

添加源

1
2
3
apt install software-properties-common python-software-properties
add-apt-repository ppa:qbittorrent-team/qbittorrent-stable
apt update && apt install qbittorrent-nox

设置自启动

1
nano /etc/systemd/system/qbittorrent.service

填入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=qBittorrent Daemon Service
After=network.target

[Service]
User=你的用户
ExecStart=/usr/bin/qbittorrent-nox
ExecStop=/usr/bin/killall -w qbittorrent-nox
Restart=always

[Install]
WantedBy=multi-user.target

使用方法:

1
2
3
4
systemctl enable qbittorrent  #开启自启动
systemctl start qbittorrent #启动qb
systemctl stop qbittorrent #停止qb
systemctl restart qbittorrent #重启qb

启动后应该可以在http://你的ip:8080/访问webui,用户名admin,密码adminadmin,登录后
切记修改用户名和密码!!!

安装flexget

pip安装

1
2
3
apt install python3-setuptools python3-pip
pip3 install --upgrade pip
pip3 install flexget ##也可能是pip install,取决于你是否安装了python2.

填写flexget配置文件:

1
2
mkdir .flexget
nano .flexget/config.yml

填入以下内容:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
templates:
freespace:
free_space:
path: /home/star
space: 10240
qb:
qbittorrent:
path: /home/star/Downloads/
host: localhost
port: 8080
username: xx
password: xx
size:
content_size:
min: 10000
max: 66666
strict: no
tasks:
CHDbits:
rss: https://chdbits.co/torrentrss.php?rows=
verify_ssl_certificates: no
accept_all: yes
template:
- freespace
- qb
qbittorrent:
label: CHDbits
CMCT:
rss: https://hdcmct.org/torrentrss.php?rows=
verify_ssl_certificates: no
accept_all: yes
template:
- freespace
- size
- qb
qbittorrent:
label: CMCT
schedules:
- tasks: [ChDbits, CMCT]
interval:
minutes: 10

以上配置是最简单的配置了,直接替换rss链接,就会下载10-66g之间的种子,每10分钟更新
一次,更多配置可以参考:

  1. flexget.config.yml
  2. qbittorrent配合flexget
  3. google和百度

测试flexget运行

1
flexget --test  --loglevel debug execute

看看是不是符合你的预期?

创建flexget系统服务运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[Unit]
Description=Flexget Daemon
After=network.target

[Service]
Type=simple
User=xx
Group=xx
UMask=000
WorkingDirectory=/etc/flexget
ExecStart=/usr/local/bin/flexget daemon start
ExecStop=/usr/local/bin/flexget daemon stop
ExecReload=/usr/local/bin/flexget daemon reload
Restart=always
RestartSec=5 ##间隔5s重启

[Install]
WantedBy=multi-user.target

其他使用与qb一致。

重载sysemd文件

编辑QB和flexget的systemd文件后,可以重载一下相关文件:

sudo systemctl daemon-reload

安装autoremove-torrents

软件来自贴吧大神 @蛋糕机Mac
2018年12月31号,最新版本1.2.4,但是我发现有重复统计的bug,就一直在用1.1了。

pip安装

1
pip install autoremove-torrents

在运行目录下建立config.yml

1
nano config.yml

填入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
my_task: 
client: qbittorrent
host: http://127.0.0.1:8080
username: XXX
password: XXX
strategies:
s1:
all_categories: true
#seeding_time: 1209600
seed_size:
limit: 1020
action: remove-old-seeds
delete_data: true

这个设置是说,检查所有的分类,如果种子总大小超过1020G则删除较旧的种子和数据。
更多设置请参考AMT-wiki

测试AMT运行

1
autoremove-torrents --view

看看是不是符合你的预期?

自动运行

1
2
crontab -e
*/15 * * * * /home/xx/.local/bin/autoremove-torrents --conf=/home/xx/config.yml ##切记按照个人的bin和配置文件位置写

每十五分钟运行一次,看看有没有符合条件需要删除的种子。

监控qb和flexget的情况

qb监控脚本

1
nano listen-qb.sh

填入:

1
2
3
4
5
6
7
8
9
#!/bin/bash
pgrep qbittorrent &> /dev/null
if [ $? -gt 0 ]
then
echo "`date` qbittorrent is stop"
systemctl start qbittorrent
else
echo "`date` qbittorrent running"
fi

flexget监控脚本

1
nano listen-flex.sh

填入:

1
2
3
4
5
6
7
8
9
#!/bin/bash
pgrep flexget &> /dev/null
if [ $? -gt 0 ]
then
echo "`date` flexget is stop"
flexget daemon start -d
else
echo "`date` flexget is running"
fi

修改权限

1
2
chmod 777 listen-qb.sh
chmod 777 listen-flex.sh

定时运行

1
crontab -e

加入如下两行

1
2
*/5 * * * * /root/listen-qb.sh  >/dev/null 2>&1
*/5 * * * * /root/listen-flex.sh >/dev/null 2>&1

每五分钟自动检测qb和flex是否再运行,没有则启动。

更新

2022-10-20 cron中增加>/dev/null 2>&1

2022-1-16:使用systemd来实现自动重启。

2021-12-21:使用pip安装art。