[BETA]改进版的PT自动工具

项目地址:https://github.com/nickfox-taterli/goseeder

简而言之,这个工具:

  • 不适合无限流量,希望通过自动辅种获得收益的人.
  • 不适合拿着24T,48T大盘机的人,也不适合只有4G硬盘的人.
  • 适合拥有众多小鸡(N台),容量都不怎么大(10G ~ 1000G),并且网络有流量限制的人.(如果使用Virmach请先阅读https://www.taterli.com/7711/)
  • 适合PT佛系养老,不想浪费众多小鸡的人,并且懒得管PT站死活,偶尔上去看看的那些人.

正因为此,这个工具就有了.之前我已经写过一个Python版本的,但是哪个版本有以下几个问题.

  • 清理策略不完善,偶尔会出现磁盘空间0的情,偶尔过度清理,比如一下子删除了所有任务.
  • 作弊功能基本鸡肋,各站反作弊能力越来越强.
  • 磁盘或者网络过忙时候也会添加种子,最后积累大量任务无法进行,虽然最终跑满带宽,但是上传收益低.
  • 无法对HR限制的PT网站处理,种子可能会被提前删除.

这个配置就这么一个文件,请参考(config-example.json):

  • dbserver 是你在MongoDB Altas申请的数据库的连接字符串,包括你的用户名和密码,格式参考如下,在Mongodb Altas控制面板可以直接取得.(获取方法:https://www.taterli.com/7691/)
  • node 是各PT网站的信息.
    • source 是PT网站的域名
    • passkey 玩过PT都懂
    • limit 即每次获取的数量上限,如果该网站更新快,就调大一些,否则调小一些减轻PT网站压力,推荐保留默认值.
    • enable 是否启用这个网站,填true启用,false就是暂时不用.
    • rule 网站规则(目前是用于HR,满足其中一个条件才可以删除种子,如果无HR请都调到0即可.)
      • seeder_time HR 限制的最小做种时间
      • seeder_ratio HR 限制的最小做种比率
      • speed_limit (V1.1开始)网站限速,比如某些网站过快会被Ban,单位是MB/s.
  • server 是各小鸡QB的配置,Go版本采用并行查询,效率更高.
    • endpoint QB的访问地址,末尾不带斜杠,QB推荐Docker方式安装.(https://hub.docker.com/r/linuxserver/qbittorrent) 或者Ubuntu添加PPA方式 (https://launchpad.net/~qbittorrent-team/+archive/ubuntu/qbittorrent-stable).版本必须大于4.1才可以.确保自己能浏览器打开访问这个地址.
    • username 登录用户名
    • password 登录密码
    • reamrk 方便记忆的名字
    • enable 是否启用这个小鸡,填true启用,false就是暂时不用.
    • rule 小鸡规则(防止被TOS炸,最大化利用率等用途,如果不懂可以不动,调整他可以获得更好的体验.)
      • concurrent_download 最大同时任务数,任务数量过多,磁盘压力和带宽压力都很大,很容易达到瓶颈,如果水管小,则应该调小这个,如果水管大则可以调大,如果不想限制就设置很大的数值就可以,注意任务过多导致网络过快可能会触发TOS.
      • disk_threshold 触发清理功能的磁盘空间,当磁盘空间小于这个数值,就会触发种子清理,会清理掉最老最无用种子,从V1.1开始,单位统一为GB.
      • max_speed 是允许添加种子的最大速度,比如你是100Mbps服务器,理论满速是12.8MB/s,如果此时你的服务器速度已经达到10MB/s,这个时候添加种子就抢不到什么速度,反而影响其他种子进度也落后于人,影响最终分享率,从V1.1开始,单位统一为MB/s.
      • min_alivetime 种子最短存活时间,避免某些种子下载之后没人下载,然后被很快清理掉,错过后期的做种好机会.
      • max_alivetime 种子最大存活时间,必须大于min_alivetime,超过max_alivetime的种子会被优先删除.
      • min_tasksize 最小的种子大小,如果种子小于这个大小就不要添加,添加更大的种子可以获得更好的收益,减轻磁盘压力,相应地也会忽略掉不少任务,设置为0接受任何种子,从V1.1开始,单位统一为GB.
      • max_tasksize 最大的种子大小,如果种子大于这个数值,就不要添加,太大的种子占用空间而且收益不一定高,如果想添加任何种子,请把max_tasksize设置得很大,从V1.1开始,单位统一为GB.
      • max_disklatency 磁盘延迟达到这个数值时候,不会添加任何种子,避免因为长期磁盘占用而触发TOS,如果想忽略这个参数,只需要把延迟调的很大就行,单位是ms.
{
  "dbserver": "mongodb+srv://username:password@cluster0.3cyul.mongodb.net/?retryWrites=true&w=majority",
  "node": [
    {
      "source": "www.nicept.net",
      "passkey": "21232f297a57a5a743894a0e4a801fc3",
      "limit": 10,
      "enable": true,
      "rule": {
        "seeder_time": 0,
        "seeder_ratio": 0,
        "speed_limit": 8.0
      }
    },
    {
      "source": "pt.btschool.club", 
      "passkey": "21232f297a57a5a743894a0e4a801fc3", 
      "limit": 10, 
      "enable": true, 
      "rule": {
        "seeder_time": 86400, 
        "seeder_ratio": 1.2, 
        "speed_limit": 10.0 
      }
    }
  ],
  "server": [
    {
      "endpoint": "http://173.82.120.2:8080",
      "username": "admin",
      "password": "TaterLi1024",
      "remark": "Cloudcone (500G)",
      "enable": false,
      "rule": {
        "concurrent_download": 1,
        "disk_threshold": 10.0,
        "disk_overcommit": true,
        "max_speed": 50.00,
        "min_alivetime": 3600,
        "max_alivetime": 86400,
        "min_tasksize": 0.0,
        "max_tasksize": 400.0,
        "max_disklatency": 10000
      }
    }
  ]
}

那么如何安装呢,先把配置文件放到/etc/goseeder.conf,然后执行下面几行就可以了.

curl https://raw.githubusercontent.com/nickfox-taterli/goseeder/master/goseeder.service > /etc/systemd/system/goseeder.service
curl -L https://github.com/nickfox-taterli/goseeder/releases/download/v1.1/goseeder > /usr/local/bin/goseeder
chmod a+x /usr/local/bin/goseeder
systemctl start goseeder
systemctl enable goseeder

如何查看安装当前信息呢?

注意:剩余空间里面,第一个显示的是当任务全部下载完你的磁盘就剩下多少空间,负数意味着Over Commit,这是没关系的.方框内才是真实可用剩余.

systemctl status goseeder  --no-pager --full

最后推荐两个便宜大盘机,适合现在这个用途的.

Time4VPS(最近正在搞15EUR一年大盘机活动):https://billing.time4vps.com/?cmd=cart&action=add&id=119&cycle=y&promocode=2021&utm_source=forum&utm_medium=offer

Hostens(买3年超划算):https://www.hostens.com/?affid=1662

他们都是超流量只限速不关机,保种感觉也是超好的,我已经用了一年了.

每个月的流量账单!
在线342天!

可以在终端查看统计,如果需要可以自行构建stat.go

《[BETA]改进版的PT自动工具》有27个想法

  1. 提个建议,不要用mongodb作为数据库,换用sqlite好些。flexget也是使用sqlite作为数据库的。原因:
    1. 软件需要记录的数据量一般不大,
    2. storage vps的RAM本来就不大,能少启动一个服务就尽量少一个。BT软件也特别吃RAM。

    1. 这个不是跑在STOR机上的,是跑在普通机上,就VIR 7刀年付之类的机,然后又为了可以随便搬到哪个服务器不用挪数据库文件用的,还有就是还有其他实用程序需要用这个数据库,SQLite锁文件并不好做.

      另外数据库不是跑在本机的,RAM占用几乎忽略不计.

  2. 大佬小弟愚钝不会用mongodb呐,
    管理面板里没找到完整的链接,全部都是演示。。
    mongo “mongodb+srv://cluster0.cjqoi.mongodb.net/myFirstDatabase” –username user
    哪里输用户名跟密码给我弄糊涂了

    1. 就是这个位置差不多了,他的上一步选择使用程序连接,然后选择Go语言,就会给出一个连接字符串,如果还没创建密码和防火墙还要先创建,不急的话明后天我再写个关于altas的教程。

        1. 还有问题就是有没有可能同一个种子会被多台服务器同时下载。
          我这里添加了两台qb,但是只有一台在用,另外一台没看到有下载记录,而且下载的那台也一直处于等待中的状态、没有速度,不过可能是因为我添加的是小站的问题

          这种情况要怎么排查问题啊大佬

          而且那个查看状态命令运行完就退出了,怎么可以让她一直保持刷新

          小白求教谢谢大佬

            1. 请问可以把单位标上吗?下面的这些没有单位,不知道怎么填写
              “disk_threshold”: 10737412742,
              “max_speed”: 5242880,
              “min_alivetime”:3600,
              “max_alivetime”:86400,
              “min_tasksize”: 1073741274,
              “max_tasksize”: 536870637122,
              “max_disklatency”: 10000

            2. 为什么大多数情况下我的qb会显示You already are downloading the same torrent.
              也就是已经下过该种子了不能再另一台服务器下载,请问是因为这个脚本没有查重功能吗,还是我的数据库设置错误无法查重

                    1. 还有哪里可以看到日志,运行只会显示启动,但没动静,是缺少什么依赖吗
                      * goseeder.service – Go Seeder Service
                      Loaded: loaded (/etc/systemd/system/goseeder.service; enabled; vendor preset: enabled)
                      Active: active (running) since Wed 2021-06-09 00:04:05 EDT; 15min 49s ago
                      Main PID: 4344 (goseeder)
                      Tasks: 4 (limit: 394)
                      Memory: 20.1M
                      CGroup: /system.slice/goseeder.service
                      `-4344 /usr/local/bin/goseeder

                      Jun 09 00:04:05 debian systemd[1]: Started Go Seeder Service.

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注