shaula 发表于 2015-1-10 22:18:32

想利用crond服务定时检查aria2进程,如何弄?

编了个检查aria2进程是否存在,如果不存在就运行的脚本
RUNNING=`ps |grep aria2 |grep -v grep`
if [ -n "$RUNNING" ]; then
echo "program is running"
else
echo "starting aria2"
/opt/bin/aria2c --conf-path=/opt/etc/dm2_aria2/aria2.conf -D
fi

现在想通过crontab -e 将 */10 * * * * /opt/etc/init.d/check添加进去,但是不知为什么没有效果。打命令:sbin/service crond status

却总是返回:Usage: /sbin/service <action_service >


有高手指点吗



shaula 发表于 2015-1-14 22:22:37

wkaanig 发表于 2015-1-14 20:10
怎么编的!命什么文件名放哪?我也想搞个 !帮下忙撒!

乐意帮忙。

telnet 进路由,打vi /opt/bin/check 进入vi编辑器里,输入以下检查aria2进程的指令

RUNNING=`ps |grep aria2 |grep -v grep`
if [ -n "$RUNNING" ]; then
echo "program is running"
else
echo "starting aria2"
/opt/bin/aria2c --conf-path=/opt/etc/dm2_aria2/aria2.conf -D
fi
其中叫起aria2的这一行指令,你可根据自己的路径和conf文档存放目录进行修改
最后按ESC键,再按:键,再分别按W和Q键,就可以保存check命令了。上面的例子里,我是直接把check保存在 /opt/bin下面,这样下次在telnet进路由后,可以直接打check命令而不用输路径了。
这时你可以执行一次check看看能不能叫起aria2,如果没问题就进入下一步:
接着打
crontab -e进入vi编辑器,按i 键变成编辑模式,再输入 */10 * * * * /opt/bin/check,第一个*/10表示每隔10分钟执行一次,后面四个*代表的是日期,不用管它,注意之间要有空格,第5个*号空格后面跟执行的命令行,路径根据自己情况改,最后按ESC键,再按:键,再分别按W和Q键,就可以保存退出了。

我发现重启路由以后,crontab里的内容无法保存,只能crontab -e再来一次,不过路由一般也不需要重启。

shaula 发表于 2015-1-11 17:50:25

已经成功解决了,原来是格式不对,*号之间必须有空格分隔。现在路由日志当中显示
“Jan 11 17:42:01 crond: crond: USER shaula pid 7687 cmd /opt/etc/init.d/check”
“Jan 11 17:43:01 crond: crond: USER shaula pid 7868 cmd /opt/etc/init.d/check”

表明每隔1分钟就执行一次检查,如果aria2异常退出,可以自动运行。哈哈,一切完美!可以用路由挂机了。

wkaanig 发表于 2015-1-14 20:10:35

shaula 发表于 2015-1-11 17:50
已经成功解决了,原来是格式不对,*号之间必须有空格分隔。现在路由日志当中显示
“Jan 11 17:42:01 crond[ ...

怎么编的!命什么文件名放哪?我也想搞个 !帮下忙撒!

Dr.Antenna 发表于 2015-1-14 22:46:27

shaula 发表于 2015-1-14 22:22
乐意帮忙。

telnet 进路由,打vi /opt/bin/check 进入vi编辑器里,输入以下检查aria2进程的指令


Shaula是好人,拍拍手。

baggio95 发表于 2015-2-7 20:06:16

crontab怎么安装

shaula 发表于 2015-2-7 21:36:27

baggio95 发表于 2015-2-7 20:06
crontab怎么安装

自带的         

playben 发表于 2015-4-24 02:21:05

shaula 发表于 2015-1-14 22:22
乐意帮忙。

telnet 进路由,打vi /opt/bin/check 进入vi编辑器里,输入以下检查aria2进程的指令


其实在路由重启后重加crontab的内容的办法也是有的。
首先打开 jffs

在 /jffs/script/ 起一个 "services-start“ 的文件。

在里面加入

#!/bin/sh
cru a aria2check "*/10 * * * * /opt/bin/check"

这样路由重启也可以重新修改 crontab。

唯一问题是路由更新固件后可能要重新修改 services-star 的文件。

mushi007 发表于 2015-9-27 08:39:16

太深奥,有人能解释详细一点的不?你们说的我在路由器里都找不到

singlexp 发表于 2015-12-9 20:16:44

check文件已经生成,其实我是把文本直接用编辑器丢在check文件里保存了,运行check也OK

但是,telnet下输入crontab -e,返回的总是: -sh: crontab: not found

ps可以看到crond进程有存在   

没学过Linux,边学边瞎猜

页: [1] 2
查看完整版本: 想利用crond服务定时检查aria2进程,如何弄?