吐血经验:成功搞定播放器重启transmission重新校验种子问题!

2017-02-18T22:16:00

经常看到同学们反映重启之后种子必须重新校验这些问题,本人也不幸碰过好几次,要命!400G的资源重新校验,什么概念!既然是普遍问题,一定要解决!经过本人24小时不间断研究测试,终于发现原因,并成功解决!其实很简单,呵呵~~~~~ 

方法一:mount
关注点1、一般情况下,transmission运行时有个配置文件所在目录,以我的美如画V8为例,是在/tmp/hdd/root/transmission/,该目录下有blocklists、resume、torrents几个目录以及settings.json、stats.json、dht.dat几个文件。当播放器不管什么情况下重启后,transmission目录及其下面的内容(也就是运行信息)都会全部丢失!
关注点2、在/usr/local/etc/myetc/init.d/目录下,有个S50transmission文件(如果设置transmission为不开机启动,则为B50transmission,此文件应该是transmission启动调用的文件),其内容大约如下(关注下划线处)

#!/bin/sh  
DOWNDIR="/tmp/usbmounts/sda1/电影"
CONFIGDIR="/tmp/hdd/root/transmission"
#if [ ! -d /tmp/hdd/root/lost+found ] ; then
#  exit
#fi
if [ ! -d $DOWNDIR ]; then
  mkdir -p $DOWNDIR
fi
if [ ! -d $CONFIGDIR ]; then
  mkdir -p $CONFIGDIR
  cp -af /opt/etc/transmission/* $CONFIGDIR

fi
/opt/bin/transmission-daemon --paused -T -g $CONFIGDIR -w $DOWNDIR

也即重启后,丢失/tmp/hdd/root/transmission目录(也就是运行信息),当transmission启动后系统将自动创建该目录并复制/opt/etc/transmission/下面的所有内容过去(若查看一下/opt/etc/transmission/下面的内容,就会发现resume、torrents里面空空如也,坑爹哦!)。呵呵~~~丢失了运行信息那么transmission自然要重新校验种子啦~~~~————吐血!

解决方法:用mount命令。首先当你在下载或者挂种时,一定记得至少暂停所有一次,停止tr,再启动tr,这时所有运行信息会完整地读入系统缓存同时保存在/tmp/hdd/root/transmission/目录下,这时候你可以执行以下命令:

mount -o bind /tmp/hdd/root/transmission /opt/etc/transmission

这样,任何时候/tmp/hdd/root/transmission/下面的运行信息发生变化,/opt/etc/transmission/目录都会同步记录(该目录所有内容重启后不会丢失),并在下次开机后transmission启动时将所有内容复制还给/tmp/hdd/root/transmission/,这样就不会重新校验啦~~~~当然,你也可以将以上命令行直接加入S50transmission文件,这样就不用每次开机启动后都要手工执行一次。

方法二:crontab
这个是linux里面的定时执行的命令吧。我发现transmission会不定时自动保存一下运行信息,比如挂的种子如果没有发生下载/上传量,它就不会更新运行信息,有下载/上传量的种子,则会实时保存信息。这样,咱们可以执行crontab命令定时(比如每30分钟、每小时、每天固定时间、每周一等等)复制一下运行信息到某个重启后不会丢失的新路径,以后可以找回。大概这个思路吧。crontab的格式自己百度吧,我不哆嗦了。

感觉还是方法一比较给力~~~呵呵,祝同学们顺利!


    1、种子必须重新校验,是由于找不到resume目录下该种子的信息。
    2、一般情况下,TR在开始下载时,会将种子保存在torrents目录下,并在运行时每隔6分钟更新一下种子信息(写进resume目录下)。(我的TR版本是2.31,其他版本估计也这样)
    3、由于固件设计格式的原因,/tmp路径下是提供临时性写入的,其下的内容除了固件原本就有的之外,开机后,任何后来写进这个路径下的东西,在重启后都会全部丢失!因为TR安装后默认配置文件目录一般是在/tmp路径下,若未重新修改的话,其运行过程中所产生的种子信息(resume,torrents目录下的内容)都暂时写进这里,那么重启后也都丢失,就必须重新校验!
    4、后来发现/usr/local/etc路径下是可读写并永久保存的,那么很简单,将配置文件目录修改到这边来,就把问题解决了。当然,这个路径的容量也是有限的,不可能写进太多东西。不过,相关配置文件加起来也就几个M,应该足够的了。
    经测试,修改配置文件目录到这里之后,任何时间、任何原因、任何方式的重启,不管已在挂种的也好、正在下载的也好,都不会再校验了,直接继续挂种或继续下载!
    为保险起见,我还写了个简单的sh脚本,不定期执行一下,将整个配置文件目录(transmission及其下的blocklists、resume、torrents子目录以及settings.json、stats.json、dht.dat几个文件)复制到硬盘备份,防止哪一天播放器全面崩溃,近1T的东西需要重校验使我也全面崩溃~~~~~

 

via。http://www.hdpfans.com/thread-23463-2-1.html

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »
因本文不是用Markdown格式的编辑器书写的,转换的页面可能不符合MIP标准。