Transmission+Flexget实现RSS自动下载

更新时间:2024-01-20 05:54:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

QNAP NAS(TS-212P)之Transmission+Flexget

在PT站实现RSS自动下载

(2014-8-19修改)

一、 本文在威联通(QNAP) TS-212P上成功实现PT站的RSS自动下载。由于网

上资料零散,并且针对的NAS操作系统版本有新有旧,本人在查阅了大量中、英文资料并花三天时间研究后,终于搞定。写此文旨在帮助还在苦苦研究此功能的同好们,同时也向那些帮助过我的同好们(包括网上各种资料的作者们)致敬。

二、 在接下来看此文前,还要哆嗦几点:

1、

虽然是在QNAP TS-212P的机器上实现的,但Linux系统大同小异,希望看者能举一反三;

2、

在接下来的操作中,要求操作者最好能熟悉Linux(或UNIX)的几个常用命令和vi编辑命令;

3、 4、 5、

保证互联网畅通,因为在安装过程中需要连网下载软件; 输入目录时,尽量以绝对目录格式输入,如/root/local/bin; 本人研究NAS不过数日,所以本文仍抛砖引玉之作,有误之处希望大神们指正。

三、 Transmission+Flexget之安装配置步骤(注意在Linux下是区别大小写的,所

以下面的命令请完全按照所列出的输入):

(一)、首先用火狐浏览器登录你的NAS,然后保证系统里安装了Optware IPKG和Transmission这两个程序(如果没有安装,请到“App Center”里安装)。

(二)、下载Putty(http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)到电脑上。也可以用其它远程连接客户端工具实现连接,比如SecureCRT等。

如果你需要从外地连回家中的NAS,需要首先开通myqnapcloud。这样就可以通过远程软件从任何接入互联网的地方访问家中的NAS了。

(三)、在电脑上启动putty.exe,出现如下画面,在Host Name中填上NAS 的IP地址(建议给NAS分配一个固定地址),在Saved Sessions里填上任意名字,点Save按钮保存以备下次使用。软件其它的选项不变,重要检查SSH是否被选中,Port端口是否为22,然后点下方的Open后软件会连接NAS。

(四)、成功连接后,会出现命令窗口(如下图),输入和登录web一样的用户名和密码就可以成功登录。

(五)、成功登录后是在用户主目录下,如下图:

(六)、顺序执行以下命令(如下图)。需要注意的是每个命令执行完成后都有信息显示,一般你在最后一行看到Success一类的单词表时成功了,看到Failue一类的表明失败了,最好就再重新执行一遍。(因为本人已经完成了安装,所以无法抓图说明)

执行安装flexget时会非常慢,程序会连网到code.google去下载软件。这个时候建议保持网络畅通,给NAS留最大的网络宽带 。

ipkg install python27 ipkg update ipkg install py27-setuptools easy_install-2.7 flexget (七)、安装TransmissionRPC,执行命令如下:

easy_install-2.7 transmissionrpc (八)、检查Flexget的版本,成功后会返回flexget的版本,注意V是大写。执行命令如下:

/opt/local/bin/flexget -V

参考资料:http://flexget.com/wiki/Install

http://flexget.com/wiki/InstallWizard/QNAP

(九)、在用户主目录下建立.flexget目录,输入mkdir .flexget后回车:

PS:经实际运用发现,212P在重启后其用户主目录,即/root目录下自建的目录或文档会丢失,所以建议各位最好是选择其它地方建立此目录。比如我后来就在/share/MD0_DATA/下建立的.flexget。MD0_DATA实际就是我的硬盘,各人的硬盘名可能不同,以你实际的为准。 (十)、进入.flexget目录,输入cd .flexget后回车:

(十一)、输入vi编辑命令,创建一个新的config.yml文件:

简要说明一下vi的编辑命令(所有编辑命令均从光标所在处开始): 编辑模式: i键—插入字符 a键—增加字符 x键--删除一个字符

dd键(连按两次)--删除一行

p键—将刚才删除的行复制到新行(此功能常用于将某行移动到某处) o键—增加新的一行

s键(小写)—替换一个字符,如果输入数字再输入s,比如5s代表替换5个字符

S键(大写)—替换一行字符,功能等同于先dd再a

Esc键回到命令模式(所有的命令都只出现在底部):

:wq—存盘退出(或者是shift+zz) :q—不存盘退出

:q!—强制不存盘退出,对于改错的内容不想保存退出特别有用

(十二)、config.yml文件格式如下。Yml是Yaml格式的文件,有严格的格式缩进要求,只能使用空格键并且空格必须是双数,不能使用Tab键。 重点讲解下这个格式(flexget关键字为红色字体,不能随意变更):

第一行的tasks:代表任务的开始,顶格开始,冒号结束

第二行的CHDBits:是某个任务名称,可以自定义。空两格开始,冒号结束 第三行的rss:是PT站的RSS订阅地址。空四格开始,rss:和地址之间必须保

留一个空格

第四行的download:是transmission的监视地址,这个地址必须和

transmission的settings.json文件中的\的目录要保持一致,否则无法实现自动下载。空四格开始,download:和后面的绝对目录之间必须保留一个空格 结束

第六、七、八、九行的host、port、username、password为关键字,不能变第五行为要使用的下载软件,这里直接就是transmission。空四格开始,冒号

更。空六格,冒号和后面的内容之间也必须保留一个空格。如果你更改过

transmission的用户和密码,那么请在第八、九行按你实际更改后的内容填写。当然如果更改过端口也请按实际内容填写。

好了,这就完成一个PT站的设置了,如果有多个PT站就照如此格式写多个任务,如下图:

(十三)、接下来就要检查你写的config.yml格式的语法是否正确了,执行如下语句进行检查,如果返回如图结果即表示通过,否则会有报错信息:

如有错,要看具体的错误原因,因为返回的信息是不一样的,一般最大可能是格式的问题,比如多个空格,少个空格。

参考资料:http://flexget.com/wiki/Configuration http://flexget.com/wiki/Plugins/transmission

(十四)、进行种子下载测试,执行如下语句进行测试。需要注意的是如果config.yml配置文件没有放在默认目录,请带上参数-c \\配置文件绝对路径\\

如果显示以下画面,则表示测试成功了,可以正常从PT站下载种子了(因为本人下载的种子太多,在做测试时报连接超时,所以从网上别人的文章里截取了画面):

(十五)、接下来就是配置计划任务了,输入cd /etc/config后回车

(十六)、输入crontab –e开始编辑计划任务。这里一定要带-e参数。

(十七)、可以看到里面已经有很多任务了,在最后一行添加如下格式信息(注意空格):

0 * * * * /opt/local/bin/flexget execute 或

@hourly /opt/local/bin/flexget execute

这段语句的意思就是每小时执行一次检查,如果想每30分钟就需要改成

*/30 * * * * /opt/local/bin/flexget execute

PS:1、经实际运行后发现,212P不能执行@hourly这种格式,只能写成0 * * * *这种格式。 2、由于.flexget的目录不在默认的用户主目录下,这里在写定时任务时应该改成如下格式: 0 * * * * /opt/local/bin/flexget –c /share/MD0_DATA/.flexget/config.yml execute

编辑完成后shift+zz保存退出,crontab –l查看是否修改成功。 修改之后需要重启crontab,命令如下(/etc/init.d/crond.sh restart):

PS:经实际运行后发现,212P重启后,crontab里用户自己编辑的定时语句会丢失,需要重新编辑一下。 如果你想测试定时任务是否按计划执行,可以将定时语句写成3分钟执行一次,然后将结果输出到指定目录的日志文件,如下:

*/3 * * * * /opt/local/bin/flexget –c /share/MD0_DATA/.flexge/config.yml execute > /tmp/cron/crontabs/cron.log

接下来cd /tmp/cron/crontabs/进入目录,ls –l查看cron.log的文件时间,然后过几分钟后再次查看。如果文件时间发生变更后表明定时任务在执行,否则表明定时任务设置不成功,需要检查修正。

PS:因为定时任务重启后会初始化,所以如果每次都写那么长一串的定时命令比较麻烦,我们可以采用如下方法: 首先在/usr/bin下用vi新建立一个flexget.sh文件,文件内容如下:

其次修改flexget.sh的权限,命令及修改后的权限如下:

第三,在crontab中按如下格式写定时任务:

是否输出日志文件可以视自己的情况需要而定,如果不需要输入日志文件,那么 >后面的内容都可以不要。

参考资料:http://en.wikipedia.org/wiki/Cron

(十八)、现在已经完成了所有的设置,你只需要登录PT站,点种子后的收藏(点亮五角星)。

注意有些类似CHDBits这种PT站,有专门的RSS下载链接,但经我测试这种专用链接在Flexget里无效,如下图:

还有下面这种带https://的RSS链接也无效,必须改成http://,否则flexget一概报错。

你可以先休息了,过一段时间再去看看是否已经在下载了,如在下载表明前面的设置成功了,否则一条一条的对照查找原因。

(十九)、以上操作是按步骤来写的,以下是其它一些说明和操作:

1、

在前期需要经常检查是否按照自己的设置运行了计划任务,可以到用户主目录下的./flexget下查看日志文件,命令如下: cd .flexget -----进入.flexget目录

ls –l flexget.log -----以列表形式查看flexget.log文件,这样可以看到此文件的最后更新时间。

cat flexget.log -----查看此文件的内容。如果flexget是按照我们计划那样执行的,你就能看到里面每隔一个小时就有一次检查或下载记录。

查看多少时间执行一次还有一个特别的好处:因为我们的PT站的免费种子 是有时间限制的,如果我们加的太早的话浪费下载时间,需要等待;加的太晚的话下载时间又可能不够。那我们加入rss的时间应该是flexget执行前的几分钟。比如我的是每小时的49分左右执行,我就在45分钟左右加入rss订阅。

2、

建议在电脑上安装Transmission Remote,这样就不用每次登录NAS去查看网页版的transmission了

(二十)、定时删除已经完成的种子,此项操作并非必须配置,并且会删除已经下载完成的文件,建议谨慎使用。 1、

清除方法也是做成定时计划任务,先在/usr/bin/下用vi新建一个文件,文件名任意,比如transmission-cleanup.sh,加入以下语句:

transmission-remote -l | grep 100% | grep Done | awk '{print $1}' | xargs -n 1 -J % ./transmission-remote -t % -r 2、

执行权限修改命令,将此文件的权限修改为755: Chmod 755 transmission-cleanup.sh 3、

ls –l transmission-cleanup.sh查看权限是否是rwxr-xr-x

4、 然后在/etc/config/crontab(crontab -e)里加入以下语句(注意空格):

@weekly /usr/bin/transmission-cleanup.sh

修改之后记得用/etc/init.d/crond.sh restart命令重启crontab 参考资料:http://flexget.com/wiki/Plugins/transmission

好吧基本所有的设置都完成了,这下可以真正的坐等种子自动下载了,千万别光顾着点亮五角星下载,要时常检查硬盘容量哦!

欢迎参与威联通讨论群(236355655),大家共同研究我们的NAS!?

By 咖啡杯里的方糖 于2014-8-5第一版 于2014-8-18修改第二版 于2014-8-19完善第二版

本文来源:https://www.bwwdw.com/article/w9bo.html

Top