dongsung 发表于 2015-11-22 20:20:23

NAS用迅雷远程下载Xware 3.0进程监视、掉线、自动重启教程.

本帖最后由 dongsung 于 2015-11-25 13:17 编辑

之前发了迅雷远程下载Xware 1.0进程监视、掉线、自动重启教程,有坛友咨询Xware3.0教程,现测试成功,大家可以参考一下。
需要Xware 1.0进程监视、掉线、自动重启教程的,请移步:
传送门:http://www.gebi1.com/forum.php?mod=viewthread&tid=245179&fromuid=50412--------------------------------------------------分割线,教程开始--------------------------------------------
0、前言:
我使用的Xware3.0版本:Xware3.0.32.253_mipsel_32_uclibc.zip
使用中发现压缩包里xware_bash.sh需要修改一下,按如下修改:


pkill改为killall:原因:不是所有平台都支持pkill命令的,测试方法,telnet输入pkill看会不会报错,不报错就不用改;


ps命令的修改是参见论坛上的,暂未研究具体原因;

改完后安装方法自行搜索。
迅雷3.0正常运行时有个4个进程常驻后台如下图(Xware3.0.32.253_mipsel_32_uclibc.zip)别的平台请自行测试;


其中:
etm_xware为迅雷远程下载主程序;
etm_monitor负责启动xware_bash.sh,只要etm_monitor在xware_bash.sh就一直运行;
xware_bash.sh进程负责监视etm_xware主程序是否运行;
vod_httpserver作用不详;
经测试:只要etm_xware存在后台,迅雷远程下载功能就正常;
因此:设计脚本文件检测etm_monitor和etm_xware两个进程运行状态,只要一个掉线就重启迅雷;
1、在xunlei3安装目录下新建check_xunlei_3.sh文件:xunlei3是我的安装目录,可根据实行情况自行修改
cd /mnt/sda3/xunlei3
touch check_xunlei_3.sh
chmod 777 check_xunlei.sh2、利用vi 编辑器,或者直接用WinSCP编辑check_xunlei_3.sh,代码如下:
#!/bin/sh
file_name="/mnt/sda3/xunlei3/xunlei_3.log" #log文件生成,需根据自己的路径修改
psout() #ps进程状态检测子程序
{
   ps -w | grep etm_ | egrep -v 'grep|check' >> $file_name
   ps -w | grep xware_bash | egrep -v 'grep|check' >> $file_name
   ps -w | grep vod_httpserver | egrep -v 'grep|check' >> $file_name
}
restart_thunder()
{
      echo -e "关闭迅雷下载程序残余进程中......" >> $file_name
      ps | grep etm_monitor |grep -v grep| awk '{print $1}' | xargs kill
      sleep 2
      ps | grep xware_bash|grep -v grep| awk '{print $1}' | xargs kill
      sleep 2
      ps | grep httpserver|grep -v grep| awk '{print $1}' | xargs kill
      sleep 2
      ps | grep etm_xware   |grep -v grep| awk '{print $1}' | xargs kill
      sleep 2
      /mnt/sda3/xunlei3/etm_monitor &   #重启进程
      sleep 15
}
echo -e '\n'"脚本运行时间:"`date` >> $file_name
echo -e "---------------------------------Check Start----------------------------------" >> $file_name
echo -e "当前迅雷远程下载程序进程状态:" >> $file_name
psout
num1=`ps | grep etm_ | egrep -v 'grep|check' | wc -l` #计算进程etm_monitor和etm_xware个数
echo -e "迅雷关键进程个数:"$num1 >> $file_name
if [ $num1 -eq 2 ] #判断进程etm_monitor和etm_xware是否存在
then
      echo -e "迅雷关键进程etm_monitor:存在" >> $file_name
      echo -e "迅雷关键进程etm_xware:存在" >> $file_name
      echo -e "迅雷远程下载程序运行状态:OK">> $file_name
else
      echo -e "迅雷远程下载程序运行状态:Not OK">> $file_name
      restart_thunder
      num2=`ps | grep etm_ | egrep -v 'grep|check' | wc -l`#计算进程数
      if [ $num2 -eq 2 ]
      then
         echo -e "迅雷远程下载程序重启:OK">> $file_name
         echo -e "重启后迅雷远程下载程序进程状态:" >> $file_name
         psout
      else
         echo -e "迅雷远程下载程序重启:Not OK">> $file_name
         echo -e "等待下一周期重启迅雷程序">> $file_name
      fi         
fi
echo -e "---------------------------------Check Over------------------------------------" >> $file_name
3、添加计划任务,每10分钟执行一次;
*/10 * * * * sh /bin/check_xunlei.sh4、查看日志:
脚本中加入了生成日志的代码,便于查看、监视迅雷运行状况,生成的log文件如下:















faninx 发表于 2015-11-23 11:43:56

赞 回家就试试

ksong 发表于 2015-11-23 15:09:13

还是用docker方便

kyo8888 发表于 2015-11-25 21:06:11

看看先啊啊啊

shenrui01 发表于 2015-11-26 20:46:33

NAS用迅雷远程下载Xware 3.0进程监视

lgx451 发表于 2015-11-28 07:10:45

正需要 太感谢了

lgx451 发表于 2015-11-28 07:13:11

ksong 发表于 2015-11-23 15:09
还是用docker方便
是呀 我的黑裙用的docker,很稳定,但215j不支持docker,没办法采用这个。

byiy 发表于 2015-11-30 22:45:14

{:7_190:}{:7_191:}

oldthree6289 发表于 2015-12-1 01:21:04

暂时不改机

hornyzhang 发表于 2015-12-1 18:05:54

赞 回家就试试

solarion 发表于 2015-12-1 18:19:42

最近一直掉线,试试LZ的方法~谢啦~

solarion 发表于 2015-12-1 20:10:27

计划任务添加在哪个文件里?

dongsung 发表于 2015-12-2 12:15:21

solarion 发表于 2015-12-1 20:10
计划任务添加在哪个文件里?

后台管理页面里找

yaoy 发表于 2015-12-5 21:13:01

pkillpkillpkillpkillpkillpkillpkill

digifox 发表于 2015-12-5 23:20:57

谢谢分享。。。。。。。

monolatry 发表于 2015-12-6 11:07:12

顶楼主啦..希望楼主多发精品好帖啦.....

简简单单 发表于 2015-12-6 13:51:06

谢谢分享。。。。。。。

zz3656 发表于 2015-12-6 21:24:16

学习一下!!!!!!!!

yhuang2000 发表于 2015-12-9 14:27:10

谢谢分享                     

黑群晖小赵 发表于 2015-12-11 23:49:25

{:7_182:}看看啥意思啊哦
页: [1] 2 3
查看完整版本: NAS用迅雷远程下载Xware 3.0进程监视、掉线、自动重启教程.