找回密码
 立即注册
查看: 7349|回复: 19

从零开始搭建一个无人值守下载机

该用户从未签到

1

主题

29

回帖

0

VC币

新手上路

Rank: 1

积分
374
sun128764 发表于 2019-1-20 11:19:42 | 显示全部楼层 |阅读模式
本帖最后由 2333 于 2019-1-20 16:15 编辑

写在前面
本教程是基于树莓派3B+写的,但是由于树莓派IO性能捉鸡,不建议大水管(>100M)的同学使用。经过我实测,在加装铁壳散热的情况下,树莓派可以接受30M的上传速度,并且壳子滚烫。本教程的目的主要在于在linux上搭建一个可以无人值守的挂种机来自动下载VCB所有大体积版本的种子,对于非Debian的linux系统,请同学们自行移植(或者上网搜索)。本文主要内容包括树莓派基础设置,qb,flexget的安装,和一个简单的进程守护脚本,请各位同学各取所需。本教程接受任何改进意见,有意见的同学请直接回复我。
准备工作材料:
树莓派一只(本文以3B+为例)
SD卡一张
移动硬盘一个
大于2.5A的USB电源一个
网络,时间,精力以及脑子
设置树莓派
如果你有一个全新未开封的树莓派,那么你需要自己安装操作系统到SD卡并正确设置。如果你的树莓派已经可以正常使用,请跳过这一步。
首先需要到官网下载Debian操作系统:https://www.raspberrypi.org/downloads/raspbian/


这里请选择附带图形操作界面的版本,也就是RASPBIAN STRETCHWITH DESKTOP。下载种子或者直接下载zip皆可。
这里我选择ethcer进行系统烧录,下载地址:https://etcher.io/


安装完成后,就可以选择刚才下载的系统镜像,点击Flash!烧录到SD卡


完成后SD卡会自动弹出,之后就可以安装到树莓派上了。
连接树莓派的HDMI到显示器,并接上键盘鼠标就可以开机了。
树莓派第一次开机会运行设置向导,可以自行根据提示更改密码,连接网络,获取更新,或者直接skip。
为了能更方便的使用树莓派,需要打开SSH服务,这里提供一个详细的教程:https://www.jianshu.com/p/654ee08d2b3a这里推荐使用方法三
如果你的树莓派已经正确设置并连接网络,现在就可以抛弃图形界面和键鼠显示器了,接下来所有的工作都可以通过SSH命令行来完成。
我个人推荐Win平台使用PuTTY,对于MAC和Linux用户请自行搜索。
在使用PuTTY之前,需要将树莓派的IP地址固定,以免每次重启都要去查看树莓派的IP地址。这里以梅林(华硕)路由为例:
进入路由器管理页面


选择内部网络选项


在MAC地址的下拉菜单中选择树莓派(RaspberryPi)并点击添加然后点击应用本页面设置。这样,以后每次重启,树莓派都会使用这个固定的IP。
下载并安装PuTTY: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html


Host Name填写刚才为树莓派分配的IP地址,Port默认22,Connectiontype 选择 SSH。可以在下面saved sessions输入名字然后点击save,这样以后就不用再输入IP,直接双击保存过的sessions就可以连接了。
点击连接就可以通过SSH连接到树莓派了。第一次连接会提示远程秘钥与本地不符,点击“确定”即可。
在PuTTY中左键光标选中复制,右键粘贴。


这里用户名默认为pi,密码默认为raspberry,或者为你自己设置的密码。输入后点击回车,注意这里密码不会显示在终端中,输入完毕后直接点击回车即可。


成功登录后,树莓派已经设置完毕,可以进行下一步操作了。
挂载硬盘
这里提供一个链接https://www.jianshu.com/p/ef23a1b88c22
其中nano编辑器Ctrl+O保存,回车确认,Ctrl+X退出。
自动挂载设置好之后就可以重启一下试试是否挂载成功,重启后需要重新登录PuTTY
  1. sudo reboot
复制代码

安装qBittorrent+flexget
理论上可以选择任何市面上常见的BT客户端,这里我个人选择qB。由于qB现在已经包含在Debian的apt-get中,所以直接apt-get install 下来就好。注意这里的qB是由个人开发者维护的,所以版本会有落后,版本号格式也与官方qB不太一样。
我这里找到了一个qB和Flexget详尽的安装教程,但是由于树莓派默认安装了Python 2.7 和 3,直接按照这个教程全局安装Flexget会安装失败。所以我选择安装Flexget官网的方法,在虚拟环境中安装以避免Python版本冲突的问题。
由于这里有一个完整的教程,我只把链接贴上来并做一些补充说明。
https://xerlang.github.io/2018/07/20/Seedbox%E9%83%A8%E7%BD%B2qBittorrent%E3%80%81FlexGet%E4%B8%8EAuto%20Remove%20Torrents%E5%AE%9E%E7%8E%B0%E8%B5%84%E6%BA%90%E8%87%AA%E5%8A%A8%E4%B8%8B%E8%BD%BD%E5%8F%8A%E5%88%A0%E9%99%A4%E6%95%99%E7%A8%8B/
因为这个教程是Ubuntu系统,add-apt-repository在树莓派中并不起作用。树莓派默认的pi没有足够的权限,所有的指令都需要在前面加sudo来使用超级用户权限。直接使用
  1. sudo apt-get install qbittorrent-nox
复制代码
就可以安装qB了。
在创建服务的时候,需要将默认的用户名root改为pi,或者任何你指定的用户名。
启动服务的时候会提示需要认证


输入1选择pi账户回车,输入密码回车即可。
给qbittorrent创建一个默认下载目录
  1. mkdir /home/pi/toshiba/vcb
复制代码

安装升级完setuptools之后就可以正式安装flexget了。
安装virtualenv虚拟环境
  1. sudo pip install virtualenv
复制代码

创建虚拟环境目录
  1. virtualenv ~/flexget/
复制代码

在虚拟环境中安装flexget
  1. cd ~/flexget/
  2. bin/pip install flexget
复制代码

在虚拟环境中激活flexget
  1. source ~/flexget/bin/activate
复制代码

由于flexget并没有全局安装,在使用任何flexget命令前都需要手动运行上一条指令激活。激活之后,所有flexget命令可用。
创建配置文件
  1. nano flexget/config.yml
复制代码

编辑配置文件,这个配置文件可以直接从动漫花园订阅VCB所有的大体积版本(HEVC)有其他需求的同学请自行修改配置文件。注意YML文件使用空格来区分层级。更详细的配置请参照 https://gist.github.com/anonymous/799ef5fc8a1a1304f4a33623fd1b3f39
  1. tasks:
  2. vcb HEVC:
  3.     rss: https://share.dmhy.org/topics/rss/rss.xml?keyword=vcb+hevc
  4.     download: /home/pi/toshiba/vcb #你的种子保存地址
  5.     accept_all: yes
  6.     qbittorrent:
  7.       port: 8080
  8.       username: admin
  9.       password: adminadmin
  10.       path: /home/pi/toshiba/vcb #你的文件保存地址
  11. web_server:
  12.   bind: 0.0.0.0
  13.   port: 50001
  14.   web_ui: yes
  15.   run_v2: yes
复制代码

由于我们没有全局安装Flexget,在编辑crontab的时候有所不同
使用nano编辑crontab
  1. crontab -e
复制代码

在最后一行加入
  1. @reboot ~/flexget/bin/flexget daemon start -d
复制代码

至此,qB和Flexget的安装已经全部完成,可以使用RSS订阅疯狂下载了。
添加一个简单的守护脚本
为了使下载机可以7*24小时全年无休工作,需要添加一个额外的守护脚本,定时检查flex和qB的运行情况,并且可以自动重启进程或者树莓派。
使用nano创建一个python脚本
  1. sudo nano daemon.py
复制代码

把如下脚本粘贴进nano
  1. <blockquote>#!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-


  3. import os
  4. import time

  5. name=['qbittorrent-nox','flexget']
  6. cmd=['systemctl start qbittorrent','~/flexget/bin/flexget daemon start -d']
  7. for i in range(len(name)):
  8.     if os.system("ps -ef|grep %s|grep -v grep"%(name[i])):
  9.         os.system(cmd[i])
  10.         time.sleep(30)
  11.         if os.system("ps -ef|grep %s|grep -v grep"%(name[i])):
  12.             os.system("reboot")
复制代码

保存退出后,赋予可执行权限
  1. sudo chmod 777 daemon.py
复制代码

编辑crontab,为避免权限不足,这里使用sudo的crontab
  1. sudo crontab -e
复制代码

在最后一行加入
  1. */5 * * * * /home/pi/daemon.py
复制代码

保存退出,重启机器,守护脚本就可以正常使用了。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

  • TA的每日心情
    开心
    2020-11-28 02:10
  • 签到天数: 508 天

    [LV.9]以坛为家II

    7

    主题

    176

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    77492
    Kyon 发表于 2019-1-20 13:31:14 来自手机 | 显示全部楼层
    辛苦了,不过我觉得追求轻量化下载直接搞个迅雷下载宝就行还能远程添加任务,再不济挂梅林路由器上也行。如果要做大规模收藏管理还是NAS走起吧。
    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    无聊
    2024-2-19 00:17
  • 签到天数: 1272 天

    [LV.10]以坛为家III

    1

    主题

    15

    回帖

    8

    VC币

    至尊会员

    开车方向自由自在的老司机

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    208109
    ApocalypseVirus 发表于 2019-1-20 14:43:36 | 显示全部楼层
    吃瓜群众一脸懵逼
    这场战斗结束以后,我就要回来家结婚了。
    回复 支持 0 反对 1

    使用道具 举报

    该用户从未签到

    22

    主题

    190

    回帖

    463

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    208479

    崭露头角活跃达人

    Enola 发表于 2019-1-20 15:00:22 | 显示全部楼层
    同意2L的说法,弄一个路由器省很多事。
    回复 支持 0 反对 1

    使用道具 举报

    该用户从未签到

    1

    主题

    29

    回帖

    0

    VC币

    新手上路

    Rank: 1

    积分
    374
    sun128764  楼主| 发表于 2019-1-20 15:54:19 | 显示全部楼层
    Kyon 发表于 2019-1-20 13:31
    辛苦了,不过我觉得追求轻量化下载直接搞个迅雷下载宝就行还能远程添加任务,再不济挂梅林路由器上也行。如 ...

    迅雷这种还是不太好吧……要是换自制固件的话还是需要这个教程,况且那玩意还不如树莓派……梅林路由可以毙了,之前流行的AC68U是800MHz主频的BCM4708双核,ARM® Cortex™-A9 内核。树莓派是BCM2837,ARM Cortex-A53 64位 (ARMv8系列) 1.2GHz (四核心)。性能上树莓派还是强很多的。而且AC68U开QoS的情况下,cpu转发能力大概只有200m,再挂一个BT怕是凉凉了。
    好歹树莓派在100m的下载速度可以用(cpu 80℃),有需要的限速到50m就可以了,家里有软路由的用软路由,没软路由的,不限速又不用QoS这家里的网怕是间歇性没法用了……


    当然这个教程并不是鼓励大家使用树莓派来干这事。这篇教程的主要目的在于给大家提供一个linux下搭建自动下载的范例,让零基础的人也可以玩转linux下载机,自动追到VCB最新的作品。降低分流/保种压力

    回复 支持 0 反对 1

    使用道具 举报

  • TA的每日心情
    开心
    2023-12-27 11:56
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    0

    主题

    2

    回帖

    0

    VC币

    注册会员

    Rank: 2

    积分
    576
    Seaward233 发表于 2019-1-21 02:12:53 来自手机 | 显示全部楼层
    要正经做下载机+NAS的话树莓派还是太弱了,上个j3455就稳了
    回复 支持 0 反对 1

    使用道具 举报

    该用户从未签到

    1

    主题

    29

    回帖

    0

    VC币

    新手上路

    Rank: 1

    积分
    374
    sun128764  楼主| 发表于 2019-1-21 03:50:41 | 显示全部楼层
    Seaward233 发表于 2019-1-21 02:12
    要正经做下载机+NAS的话树莓派还是太弱了,上个j3455就稳了

    我自己用的6700k+esxi,顺带一个LEDE。(我家路由器比我自己电脑配置高)
    回复 支持 0 反对 1

    使用道具 举报

    该用户从未签到

    2

    主题

    269

    回帖

    0

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    131186
    jiaolovekt 发表于 2019-1-22 00:32:56 | 显示全部楼层
    我好菜啊
    我好菜啊
    我好菜啊
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-11-24 16:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    6

    主题

    29

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    65288
    ltycomputer 发表于 2019-1-24 10:44:12 | 显示全部楼层
    本帖最后由 ltycomputer 于 2019-1-24 10:47 编辑

    我觉得比较省钱但是有点折腾的办法是:
    淘宝买个新路由3,120元,MT7621A双核880Mhz,超频到1.1GHz,刷openwrt
    机子自己带了个USB3口,可以外接单盘位/多盘位硬盘盒
    然后上面可以装transmission或者rtorrent下载
    由于openwrt有python包,装flexget也是可行的

    这样NAS和千兆路由都有了

    更折腾,性能更好的可以参考我那台小玩意
    https://www.chiphell.com/thread-1945481-1-1.html
    不含硬盘千元搞定,支持多宽带接入,支持MU-MIMO等等……

    回复 支持 0 反对 1

    使用道具 举报

    该用户从未签到

    8

    主题

    55

    回帖

    5

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    16772
    Cerasus 发表于 2019-4-23 20:24:41 | 显示全部楼层
    楼主你的树莓派用着还好吗?24小时不间断工作的话有没有出现过死机之类的情况?
    还有楼主提到树莓派IO性能捉急,加装铁壳散热的情况下可以接受30M的上传速度,那么下载速度呢?
    java.lang.NullPointerException
    你女朋友是空的!
    回复 支持 0 反对 1

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表