华硕网络产品技术交流平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

查看: 19283|回复: 12

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

[复制链接]

16

主题

139

回帖

614

积分

高级会员

Rank: 4

积分
614
发表于 2015-1-10 22:18:32 | 显示全部楼层 |阅读模式
编了个检查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 >


有高手指点吗



微信扫一扫,阅读更方便^_^

16

主题

139

回帖

614

积分

高级会员

Rank: 4

积分
614
 楼主| 发表于 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再来一次,不过路由一般也不需要重启。

16

主题

139

回帖

614

积分

高级会员

Rank: 4

积分
614
 楼主| 发表于 2015-1-11 17:50:25 | 显示全部楼层
已经成功解决了,原来是格式不对,*号之间必须有空格分隔。现在路由日志当中显示
“Jan 11 17:42:01 crond[719]: crond: USER shaula pid 7687 cmd /opt/etc/init.d/check”
“Jan 11 17:43:01 crond[719]: crond: USER shaula pid 7868 cmd /opt/etc/init.d/check”

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

3

主题

25

回帖

95

积分

注册会员

Rank: 2

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

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

16

主题

3033

回帖

7693

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7693

RT-AC68URT-AC86UGT-AC5300

发表于 2015-1-14 22:46:27 | 显示全部楼层
shaula 发表于 2015-1-14 22:22
乐意帮忙。

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

Shaula是好人,拍拍手。

0

主题

4

回帖

18

积分

新手上路

Rank: 1

积分
18
发表于 2015-2-7 20:06:16 | 显示全部楼层
crontab怎么安装

16

主题

139

回帖

614

积分

高级会员

Rank: 4

积分
614
 楼主| 发表于 2015-2-7 21:36:27 | 显示全部楼层

自带的         

1

主题

12

回帖

90

积分

注册会员

Rank: 2

积分
90
发表于 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 的文件。

4

主题

4

回帖

29

积分

新手上路

Rank: 1

积分
29
发表于 2015-9-27 08:39:16 | 显示全部楼层
太深奥,有人能解释详细一点的不?你们说的我在路由器里都找不到

1

主题

7

回帖

25

积分

新手上路

Rank: 1

积分
25
发表于 2015-12-9 20:16:44 | 显示全部楼层
check文件已经生成,其实我是把文本直接用编辑器丢在check文件里保存了,运行check也OK

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

ps可以看到crond进程有存在   

没学过Linux,边学边瞎猜

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回列表 搜索 官方QQ群
×

秒后自动关闭

小黑屋|手机版|Archiver|华硕网络产品技术交流平台 ( 苏ICP备16010857号-1 )苏公网安备 32050502000499号

GMT+8, 2024-3-29 13:41 , Processed in 0.034051 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表