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文件如下:
赞 回家就试试 还是用docker方便 看看先啊啊啊 NAS用迅雷远程下载Xware 3.0进程监视 正需要 太感谢了 ksong 发表于 2015-11-23 15:09
还是用docker方便
是呀 我的黑裙用的docker,很稳定,但215j不支持docker,没办法采用这个。 {:7_190:}{:7_191:} 暂时不改机 赞 回家就试试 最近一直掉线,试试LZ的方法~谢啦~ 计划任务添加在哪个文件里? solarion 发表于 2015-12-1 20:10
计划任务添加在哪个文件里?
后台管理页面里找 pkillpkillpkillpkillpkillpkillpkill 谢谢分享。。。。。。。 顶楼主啦..希望楼主多发精品好帖啦..... 谢谢分享。。。。。。。
学习一下!!!!!!!! 谢谢分享 {:7_182:}看看啥意思啊哦