背景
在2019年计划着弄个nas玩玩,这不正好蜗牛车发动,就忍不住上车了。
装了黑裙,第一次接触群晖,也没啥经验,折腾这个全自动订阅下载已经前前后后快1一个月了,具体也是记不清楚了。
期间也求助了不少人和查看了不少别人的文章和教程,因为每个人遇到的坑不一样,所以很多坑都是一个一个踩出来的。
郑重声明:本文教程只记录下了本人在折腾过程中遇到的坑,希望能帮助到各位。由于在折腾的过程中很多都是尝试性操作,可能我提到的这些尝试性操作并不会影响结果,所以我只能说我这么操作下来是没什么问题的。
需求
这个还是为了PT下载为主的操作,相信很多人都懂的,懒是折腾的根源,罪恶的源泉。
也是研究了主力下载工具,根据隔壁大神推荐最终是选择了Transmission加Flexget的组合来实线PT下载。
工具
ssh客户端,例如putty。文件传输工具,例如winscp。关于工具的选择请查,看最后章节遇到的问题的第5点,看完回到这边。
原理
这个涉及到Transmission和Flexget的订阅原理,简单说下,Transmission是没有自动订阅功能的,但是他有个获取某个特定目录里面的Torrent的功能,所以,Flexget的功能就是把你要下的Torrent下载到Transmission的监控目录,然后Transmission就会自动把里面的Torrent加载好,下载。
准备
本人为双网口B款,在装黑裙的过程中也算踩了不少坑,明明是支持UEFI的,但是UEFI死活启动不起来,最后无奈MBR下驱动了,我采用的方案是XPEnology Tool V1.4.2(点击直达)的1.03b的DS3617XS引导和版本为DSM 6.2 23739的DS3617XS原版镜像的国外论坛的安装方法(点击直达)。如果有时间我另外写安装的详细过程吧。
设置root密码和权限的问题:这部分网上教程应该比较烂了,我就少写一点。
admin账户链接ssh登陆以后出现绿色字体的admin@xxx
(xxx
应该显示你设置的主机用户名),然后输入sudo su -
(注意u
和-
之间有一个空格!!!)。再次输入admin密码就会出现绿色字体root@xxx
。
输入synouser --setpw root xxx
(xxx是你打算要修改的root的密码 建议修改成和admin账户一样,注意-–
前有一个空格),回车,出现绿色字体的root@xxx
,这样就成功的将ROOT设置好密码了。当然为了避免遗忘,还是建议你设置成admin账户的密码吧。
这里有个东西需要注意一下,需要打开root的登录功能。具体的操作为:用上述方法进入到root后,cd /etc/ssh
,
然后vi sshd_config
,找到的位置,把#PermitRootLogin xxxx
这行改成PermitRootLogin yes
,记得去掉前面的#
,然后按ESC
,输入保存命令:wq
(注意是英文的且小写),回车即可。
重启ssh服务,这里有个偷懒的方法:去网页上禁用启动ssh功能
,应用,再勾选,在应用即可。从现在开始你可以用root账号登录ssh和访问文件了。
如果不能登录可以看看是不是这个配置文件的权限不够什么的,在网上的一篇教程中,看到给sshd_config赋予755的权限,命令为:chmod 755 sshd_config
。
从这里开始请使用root登录,以下所有操作均在root下进行的。
另外Transmission和Flexget都是在群晖的条件中心中安装的。如果已经操作过,请忽略本段。
- 登录到群晖后台->套件中心->设置->套件来源->点击新增。在弹出的界面中填入以下地址:
http://packages.synocommunity.com/
。加了以后你的套件中心左边就会多出一个社群。 - 信任层级允许:登录到群晖后台->套件中心->设置->常规->信任层级->选择任何发行者,确定就好了。
- 启用beta版插件:登录到群晖后台->套件中心->设置->试用版,把是,我想体验试用版勾起来,确定就好了。
准备工作完成。
安装Transmission以及美化
这部分肯定也是网上遍地是教程,所以我这边随便写一点。
听闻在6.X以后好像需要权限变了,在6.X系统以后所有跟下载相关的用户好像都变成sc-download这个用户了
请查看最后章节遇到的问题的第1点,看完回到这边。
打开套件中心->社群->找到Transmission,安装它,装好之后会自动启动安装程序。
安装的时候会有三个选项(PS:貌似现在新版本已经直接跳过了这个步骤,而是设置一个下载共享目录)
第一行是Transmission下栽的目录,就是上面那一步创建的下载目录,填进去。记住他,在Flexget配置文件里需要它。
第二行是Transmission的监控目录,就是那一步创建的监控目录,填进去。记住他,在Flexget配置文件里需要它。
第三行是Transmission的临时目录,直接留空好了。
下一步是登录到Transmission的账号密码,自己填写就好了,在下一步就是安装了,安装过程中会提示目录不存在啥的,我这里的处理是直接手工建立该文件夹(经过多次的实践,貌似在正确的权限下不会自动创建文件夹的,不过我还是手动创建了,而且把创建的文件夹权限赋给了sc-download用户组,可以是读写,我是赋予了完全控制)。
不出意外能正常启动了,不能启动请使用玄学方法万能重启大发!
美化也是很简单的:
执行下载wget -N https://github.com/ronggang/transmission-web-control/raw/master/release/install-tr-control-cn.sh --no-check-certificate
备用地址。wget https://gitee.com/culturist/transmission-web-control/raw/master/release/install-tr-control-gitee.sh --no-check-certificate
,作者gitee同步地址,这样就不需要镜像站了,貌似作者很久没同步更新gitee了,脚本有bug,安装后回404,具体解决方案参见群晖安装transmission-web-control后报错404 Not Found,如果还不行,百度找一下github镜像站,把其中的github.com
替换成对应的网址就行了作者好久没更新维护过了,目前有bug,可以键入该命令全自动执行。curl -s https://gitee.com/devonzhang/transmission-web-control-install-script-fixed/raw/master/install-tr-control-gitee.sh | bash -s auto
,详情参见[群晖安装transmission-web-control后报错404 Not Found]14- 执行下载
wget -N https://raw.githubusercontent.com/ted423/transmission-web-control/master/release/install-tr-control-cn-tr4_ted423.sh --no-check-certificate
(最新脚本,支持4.0版本,支持DSM7,无需修复) - 执行安装
bash install-tr-control-cn-tr4_ted423.sh
- 我觉得下一步不需要解释了,都是中文的,选择
1
(手动无奈)。
默认9091端口,你的ip:9091端口快去看看吧。
安装Flexget和相关组件及配置Flexget
- 以下教程由于本人好久未使用过了,可能已经不够标准,仅供参考
- 以下教程由于本人好久未使用过了,可能已经不够标准,仅供参考
- 以下教程由于本人好久未使用过了,可能已经不够标准,仅供参考
接下来安装Flexget,同理打开套件中心->社群->找到Flexget,安装它,安装好后,一定要重启群晖,为嘛?请查看最后章节遇到的问题的第2点,看完回到这边。
重启完成后,去配置Flexget的配置文件(请跳到Flexget的配置文件章节阅读),配置好后,这时候打开winscp,到/volume1/@appstore/flexget/var
文件夹下,上传配置文件。
关键一步,直接对着config.yml文件->右键->属性,把权限改成0777(理论上0755也行,我直接一点。可能读取不到配置文件),另外把flexget.log
也改成0777(理论上0755也行,我直接一点。这里可能会遇到没有日志文件,理论上运行过配置文件的检查的时候会生成的,如果已经有了的话,则可能因为在配置文件的时候没有权限而没有日志写入)。
在启动之前我们还得装个插件,这个插件是用于去调用Transmission的,命令为:/volume1/@appstore/flexget/env/bin/pip2.7 install transmissionrpc
。
此时可以去启动了,可以去套件中心启动。这里如果遇到启动不起来的话,请看日志。如果提示是目录找不到,如果你的目录是确实存在的话,请查看最后章节遇到的问题的第4点,看完回到这边。
如果是在套件中心启动的话,貌似是不需要下面的操作的,默认会帮你开启自启动的样子,如果你是和我一样命令启动的话需要下面的操作。
添加开启自启动:vi /etc/rc.local
,如果文件不存在,会被创建的,假设文件一开始是没有的,把启动命令填写进去,如下
#!/bin/sh
/volume1/@appstore/flexget/env/bin/flexget -c /volume1/@appstore/flexget/var/config.yml daemon start -d &
exit 0
其中第二条就是我们的启动命令,在结尾处加上 &
(有个空格)。ESC
,:wq
回车保存后,执行chmod +x /etc/rc.local
命令来添加执行权限。
不出意外的话现在开始可以过上懒人PT下载生活了。
另外有补充的东西请查看最后章节遇到的问题的第6点开始。
Flexget的配置示例
#web_server:
# bind: 0.0.0.0
# port: 50001
# ssl_certificate: '/etc/ssl/private/myCert.pem'
# ssl_private_key: '/etc/ssl/private/myKey.key'
# web_ui: yes
# base_url: /flex
# run_v2: yes
schedules:
- tasks: AA1
schedule:
minute: "*/5"
- tasks: BB2
schedule:
minute: "*/5"
tasks:
AA1:
rss: https://xxxxxxxxxxxxxxx
accept_all: yes
download: /volume1/video/pt/watch
template: Transmission
BB2:
rss: https://xxxxxxxxxxxxxxx
accept_all: yes
download: /volume1/video/pt/watch
template: Transmission
templates:
Transmission:
transmission:
host: localhost
port: 9091
username: 你的用户名
password: "你的密码"
free_space:
path: /volume1/video/pt/downloads
space: 10240
# 注释
#web_server: # 网页服务正式的时候不需要
# bind: 0.0.0.0 # 绑定的ip
# port: 50001 # 端口号
# ssl_certificate: '/etc/ssl/private/myCert.pem' # 证书
# ssl_private_key: '/etc/ssl/private/myKey.key' # 证书
# web_ui: yes # 是否开启webui
# base_url: /flex # 路由路径,我这边打开了会提示不存在这个配置
# run_v2: yes # 2.0版本的ui吧,貌似官网是这么说的,不过我这边打开了会提示不存在这个配置
schedules: # 定时任务
- tasks: AA1 # 任务名 注意前面的“-”的后面是有一个空格的
schedule: # 和上面的schedules有啥区别咱也不知道,咱也不敢问
minute: "*/5" # 执行的频率,示例为5分钟一次
- tasks: BB2
schedule:
minute: "*/5"
tasks: # 任务
AA1: # 任务名,和上面的呼应
rss: https://xxxxxxxxxxxxxxx # rss链接
accept_all: yes # 是否下载全部,我订阅的东西都是自己想下载的,所以直接选择下载全部
download: /volume1/video/pt/watch # 种子文件下载目录,这个目录应该是安装Transmission的时候填写的监控目录
template: Transmission # 使用的下载工具模板,我们用的是Transmission
BB2:
rss: https://xxxxxxxxxxxxxxx
accept_all: yes
download: /volume1/video/pt/watch
template: Transmission
templates: # 下载的工具模板配置
Transmission: # 对应的tasks里的template
transmission: # 不用改
host: localhost # 地址,不用改
port: 9091 # 端口,默认9091
username: 你的用户名 # 需要我解释吗?
password: "你的密码" # 还问打死你
free_space: # 下载的空间?
path: /volume1/video/pt/downloads # 下载的目录
space: 10240 # 给上述空间留下的最小空间,即低于这个值不下载,单位好像是MB。
Flexget对配置文件有极高的缩进要求,多一个空格少一个空格都可能配置不通过,必须遵循YAML格式,即:子项比所属父项多缩进两个半角空格。
关于命令问题,请查看最后章节遇到的问题的第3点,看完回到这边。
这里对配置文件可以进行检查,在安装好后,可以运行/volume1/@appstore/flexget/env/bin/flexget check
进行检查。
上述的配置文件可能会提示在- tasks: AA1
处(提示是行号,BB2处同理)缺少:
,这个是正确的,他只是进行了粗鲁的的语法检测,具体的检测可以在完全配置好后机型测试。测试的方法为/volume1/@appstore/flexget/env/bin/flexget --test execute
,还可以去使用更加详细的日志文件方法,命令为/volume1/@appstore/flexget/env/bin/flexget --test --loglevel debug execute
。
检查的第二个问题,这个问题我一开始是没有遇到了,直到后面才遇到的,而且很多教程里也没有写到这点,检查的时候提示缺少service_identity
,处理方法是是利用python安装,这里使用的是Flexget下的python。命令为:/volume1/@appstore/flexget/env/bin/pip2.7 install service_identity
这是我的检查通过的截图。
理论上应该只有最后2条输出的,根据上述的原因,才多了指定配置文件1行,非错误提示2行。
遇到的问题
1.权限问题
群晖->控制面板->共享文件夹->用户群组->sc-download->编辑->权限。如下图:
把你要给权限的盘符的可读写权限勾起来。保存就好了。
回去吧sao年!
2.关于安装好后Flexget需要重启的问题
不重启的话貌似系统读不到Flexget一些文件,重启后会正确加载,而且在我折腾的过程中还涉及到Flexget的权限问题很是奇葩。
回去吧sao年!*2
3.关于Flexget运行命令的问题
由于Flexget没有加入系统的环境变量,所以关于运行它时候必须是/volume1/@appstore/flexget/env/bin/flexget
,其中volume1
是我的安装该套件的目录,因人而异。
我这边在折腾的过程中有时候遇到了提示找不到配置文件,这时候就要强制指定配置文件了,具体为-c /volume1/@appstore/flexget/var/config.yml
,比如检查文件的示例的命令就为/volume1/@appstore/flexget/env/bin/flexget -c /volume1/@appstore/flexget/var/config.yml check
。
回去吧sao年!*3
4.关于Flexget无法启动的问题
我也不知道什么情况,在套件中心启动的话一直提示启动失败,然后在日志文件里写着找不到我配置的/volume1/video/pt/watch
和/volume1/video/pt/downloads
的两个目录,事实上目录存在的,而且权限也是有的,很是奇怪。然后我在网上找到了命令启动的方式,如下:/volume1/@appstore/flexget/env/bin/flexget -c /volume1/@appstore/flexget/var/config.yml daemon start
,这样启动是是不对关闭命令行的,可以用于测试的时候。如果这个测试通过,按CTRL
+C
退出,然后运行/volume1/@appstore/flexget/env/bin/flexget -c /volume1/@appstore/flexget/var/config.yml daemon start -d
(多了-d
),这样便是正常启动了。
回去吧sao年!*4
5.关于文件传输工具的选择
不知道为什么我手头的Xftp工具无法以root身份SFTP协议连接群晖(群晖服务),然后使用WinSCP可以用SCP协议连接。
个人怀有是群晖自带的SFTP协议是只能连接群晖里的正常用户的(如默认的admin)的共享文件夹下的目录,而root身份SFTP协议没有系统目录权限(应该是没开),所以提示“无法与'192.168.X.X'连接”。
回去吧sao年!*5
6.关于Flexget其他问题
可以去日志文件里查看,路径为/volume1/@appstore/flexget/var/flexget.log
。
也可以敲命令/volume1/@appstore/flexget/env/bin/flexget -c /volume1/@appstore/flexget/var/config.yml status
如果更新了配置文件,又不想重启的话可以使用/volume1/@appstore/flexget/env/bin/flexget -c /volume1/@appstore/flexget/var/config.yml daemon reload-config
后记
其实遇到的问题还有很多一时间想不起来,我慢慢补充吧。
版权属于:塵世不再
本文链接:https://www.leeay.com/archives/10/
所有文章均采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。 您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
如果博客部分文章出现空白或异常,请留言或者联系博主修复。
5 comments
通过命令可以启动flexget
/volume1/@appstore/flexget/env/bin/flexget -c /volume1/@appstore/flexget/var/config.yml daemon start -d
但是在dsm就启动失败,而且没有任何日志,重度强迫症表示好难受
哈哈哈!
download station 支持RSS 不香嘛? 又有APP 又有插件
DS管理极为不便,种子少还好,要是成百上千的种子就难受了
没有说不香,但是download station目前有个致命的缺点就是没有tracker分类的功能,如果你的站有点多的话就比较尴尬了。