维塔斯科技

 找回密码
 立即注册
查看: 2724|回复: 14
打印 上一主题 下一主题

DSM5.2 task scheduler 的 SCRIPT 要怎寫?

[复制链接]

该用户从未签到

75

主题

475

帖子

1047

积分

金牌会员

Rank: 6Rank: 6

积分
1047
跳转到指定楼层
楼主
发表于 2016-3-29 20:22:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在WINDOW自帶的TELNET, 連上NAS. 運行 /volume1/homes/user1/aria2/aria2.sh 完全沒問題
不過在 task scheduler中設好後按RUN卻完全沒反應
何解?

aria2.sh  內容如下, 己經設好權限為755的
#!/bin/sh

/volume1/homes/user1/aria2/aria2c --conf-path=/volume1/homes/user1/aria2/aria2.conf -D
复制代码

aria2c 是靜態編譯版, 不需要安裝optware,沒有依賴關係,權限也是 755, 在TELNET直接行/volume1/homes/user1/aria2/aria2c --conf-path=/volume1/homes/user1/aria2/aria2.conf -D也是沒問題的


最後, 我想每5分鐘檢查一次ARIA2是否運行中, 是就什麼都不做, 否則自動運行ARIA2, 那麼我的aria2.sh 應該怎寫?

謝謝!

回复

使用道具 举报

该用户从未签到

81

主题

540

帖子

1181

积分

金牌会员

Rank: 6Rank: 6

积分
1181
沙发
发表于 2016-3-29 20:22:11 | 只看该作者
emyself 于 2015-8-26 23:28 编辑

我只是随便指定个脚本路径,第1个root是运行脚本的用户名。最后是更新crond的意思,不需要重启。


回复 支持 反对

使用道具 举报

该用户从未签到

51

主题

401

帖子

871

积分

高级会员

Rank: 4

积分
871
板凳
发表于 2016-3-29 20:22:12 | 只看该作者
emyself 于 2015-8-26 23:08 编辑
vi /etc/crontab
复制代码然后在crontab里边增加 5 * * * * root /root/aria.sh -s
复制代码第一个5就是5min的意思然后更新

/sbin/initctl stop crond

/sbin/initctl start crond
复制代码







回复 支持 反对

使用道具 举报

该用户从未签到

54

主题

404

帖子

880

积分

高级会员

Rank: 4

积分
880
地板
发表于 2016-3-29 20:22:12 | 只看该作者

不好意思,没有看清楚你的题目。
关于脚本的写法,你可以随便在网络上搜索一下,这个不难的,也就是检查进程里有没有aria2存在,有就直接退出,没有就执行一次aria2。
crond的意思就是windows的计划任务,就是5min中执行一次,你可以写好脚本了,让5min中运行一次脚本,检查一下aria2的进程状态。

另外:我自己也用aria2,好像aria2没有意外崩溃过,到目前为止。

回复 支持 反对

使用道具 举报

该用户从未签到

62

主题

454

帖子

988

积分

高级会员

Rank: 4

积分
988
5#
发表于 2016-3-29 20:22:12 | 只看该作者
mrmnm 于 2015-8-27 19:28 编辑

這樣子嗎? 但第5行失敗了, ps aux, 報錯 invalid option -a, 請問要怎改?
#! /bin/sh

PRO_NAME=aria2c

while true ; do

#    用ps獲取aria2進程數量

NUM=`ps aux | grep aria2c| grep -v grep |wc -l`

#    少於1,重啟進程

if [ "aria2c" -lt "1" ];then

    volume1/homes/user1/aria2/aria2c --conf-path=/volume1/homes/user1/aria2/aria2.conf -D

#    大於1,殺掉所有進程,重啟

elif [ "${NUM}" -gt "1" ];then

    killall -9 aria2c

    volume1/homes/user1/aria2/aria2c --conf-path=/volume1/homes/user1/aria2/aria2.conf -D

fi

done  

exit 0


复制代码
root路徑是必須嗎?
放這裡行不行? /volume1/homes/user1/aria2/aria2.sh

我現在是改了etc/rc的文件, 在EXIT 0前一行加入/volume1/homes/user1/aria2/aria2c --conf-path=/volume1/homes/user1/aria2/aria2.conf -D, 就能開機啟動了. 不過要是aria2崩潰了就要重啟了. 現在看來DSM自帶的任務計劃根本沒用啊!

回复 支持 反对

使用道具 举报

该用户从未签到

62

主题

373

帖子

826

积分

高级会员

Rank: 4

积分
826
6#
发表于 2016-3-29 20:22:13 | 只看该作者
#!/bin/sh

num=`ps | grep aria2c | grep -v grep | grep -v check | wc -l`  

if [ $num -lt 1 ]                                                

then /usr/bin/aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all --dir=/volume1/down -c -D                             

fi
复制代码
可以用这个脚本,脚本位置可随便放,但要加权限
chmod 777 /volume1/@appstore/check/checkaria2.sh
设置间隔10分钟执行
修改crontab里边增加
*/10        *        *        *        *        root    /volume1/@appstore/check/checkaria2.sh
这样就可以监控你的程序阿有启动
回复 支持 反对

使用道具 举报

该用户从未签到

72

主题

493

帖子

1076

积分

金牌会员

Rank: 6Rank: 6

积分
1076
7#
发表于 2016-3-29 20:22:13 | 只看该作者

控制面板-任务计划-新增-用户自定义脚本  

在运行命令栏填上你的“/volume1/homes/user1/aria2/aria2c --conf-path=/volume1/homes/user1/aria2/aria2.conf -D”

只要你确定这个命令你可以在telnet里正确执行,那这里就是有效的。
然后在计划里,选择运行频率为每5分钟,就OK了。

回复 支持 反对

使用道具 举报

该用户从未签到

69

主题

427

帖子

943

积分

高级会员

Rank: 4

积分
943
8#
发表于 2016-3-29 20:22:13 | 只看该作者

我说那个计划任务绝对可用,给你提示:你更改aria2权限为7777,且要勾选循环设定组,拥有者和权限。

如果这你还搞不定,那我也没办法了,兄弟自求多福吧……

回复 支持 反对

使用道具 举报

该用户从未签到

58

主题

443

帖子

960

积分

高级会员

Rank: 4

积分
960
9#
发表于 2016-3-29 20:22:14 | 只看该作者

謝謝回覆, 實測沒用啊, 什么反應都沒有

回复 支持 反对

使用道具 举报

该用户从未签到

73

主题

502

帖子

1093

积分

金牌会员

Rank: 6Rank: 6

积分
1093
10#
发表于 2016-3-29 20:22:14 | 只看该作者
楼主真够蛋疼的,群晖自带的计划任务支持自定义脚本,有现成的不用非得折腾命令行,图啥呢?
好好看看DSM的计划任务吧

回复 支持 反对

使用道具 举报

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

本版积分规则

    移动客户端:
    关注我们:
  • 手机客户端:
  • 安卓版
  • 扫描二维码下载

Archiver|手机版|邢台网云科技有限公司 ( 冀ICP备16008275号 )

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