24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1280  |  回复: 17
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wuy069

铁杆木虫 (正式写手)

[求助] 请教:用Shell, awk, perl等语言实现监视SGE集群节点和任务

请教:用Shell, awk, perl等语言实现监视SGE集群节点和任务
简单的bash shell和awk语言会点,但弄个复杂的脚本,功底还是不够

下面的格式有点错位,我把相应的内容以附件粘贴了。

[wuy@cluster test]$ qhost -j
HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS
-------------------------------------------------------------------------------
global                  -               -     -       -       -       -       -
compute-0-0             lx26-amd64      4  2.97    3.9G    3.5G    4.0G    2.9G
   job-ID  prior   name       user         state submit/start at     queue      master ja-task-ID
   ----------------------------------------------------------------------------------------------
         6 0.50500 test1.sh   wuy          r     12/09/2012 14:47:26 all.q@comp MASTER        
         7 0.60500 test4.sh   wuy          r     12/09/2012 14:47:26 all.q@comp MASTER        
                                                                     all.q@comp SLAVE         
                                                                     all.q@comp SLAVE         
compute-0-1             lx26-amd64      4  3.56    3.9G    3.8G    4.0G    3.1G
   job-ID  prior   name       user         state submit/start at     queue      master ja-task-ID
   ----------------------------------------------------------------------------------------------
         8 0.60500 test2.sh   tester       r     12/09/2012 14:48:52 all.q@comp MASTER        
                                                                     all.q@comp SLAVE         
                                                                     all.q@comp SLAVE
         9 0.60500 test3.sh   tester       r     12/09/2012 14:48:52 all.q@comp MASTER        
                                                                     all.q@comp SLAVE         
                                                                     all.q@comp SLAVE
在compute-0-0节点上有两个任务6和7,所用的cpu分别为1和2;在compute-0-1节点上有两个任务8和9,所用的cpu分别为2和2.
使用Shell, awk, perl等语言获得的命令脚本打印输出下面所示:
------------------------------------------------------------------------------------------------
  node          state   load    ncpu   mem   memuse   swapto  swapus  tasks  jobids/users     
------------------------------------------------------------------------------------------------
compute-0-0    free    2.97     4    3.9G   3.5G     4.0G    2.9G      3     6/wuy 7/wuy
compute-0-1    busy    3.56     4    3.9G   3.8G     4.0G    3.1G      4     8/tester 9/tester

其中,当node的LOAD为“-”时,相应node的state为down.

下面是根据qstat命令编写脚本监视任务的申请时间和逝去时间
[wuy@cluster test]$ qstat -u '*'
job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID
-----------------------------------------------------------------------------------------------------------------
      6 0.50500 test1.sh   wuy          r     12/09/2012 14:47:26 all.q@compute-0-0.local            1        
      7 0.60500 test4.sh   wuy          r     12/09/2012 14:47:26 all.q@compute-0-0.local            2  
      8 0.60500 test2.sh   tester       r     12/09/2012 14:48:52 all.q@compute-0-1.local            2        
      9 0.60500 test3.sh   tester       r     12/09/2012 14:48:52 all.q@compute-0-1.local            2
[wuy@cluster test]$ qstat -j 6 |grep h_rt
hard resource_list:         h_rt=3600
得到的申请时间(reqtime)为3600s,改为小时制:1:00:00
逝去的时间(elaptime)为现在的时间`date`减去任务开始的时间

使用Shell, awk, perl等语言获得的命令脚本打印输出下面所示
job-ID   name       user         state submit/start at     queue                      slots   reqtime      elaptime
--------------------------------------------------------------------------------------------------------------------
      6  test1.sh   wuy          r     12/09/2012 14:47:26 all.q@compute-0-0.local      1      1:00:00     00:50:00
      7  test4.sh   wuy          r     12/09/2012 14:47:26 all.q@compute-0-0.local      2      2:00:00     00:50:00
      8  test2.sh   tester       r     12/09/2012 14:48:52 all.q@compute-0-1.local      2      5:00:00     00:48:34
      9  test3.sh   tester       r     12/09/2012 14:48:52 all.q@compute-0-1.local      2     12:00:00     00:48:34[ Last edited by wuy069 on 2012-12-9 at 18:30 ]
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 求助.txt
  • 2012-12-09 18:30:44, 4.22 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tracel

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
看起来貌似很容易写,shell+awk 就可以,不过把你命令的结果组合下就可以了。

不过实在没看懂你需求是什么。你既然懂得脚本,不妨具体解决不了的问题贴出来,更方便一点。
2楼2012-12-09 20:59:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tracel

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
wuy069: 金币+20, 有帮助, 要考虑的因素还是挺多的,我有时间再弄吧 2012-12-10 08:07:09
qhost -j | awk '/compute/{b=1;a[b++]=$1;a[b++]=$3;a[b++]=$4;getline;getline;for(i=1;i<5;i++){getline;if(NF==9){a[b++]=$4"/"$1}};print a[1]"\t"a[2]"\t"a[3]"\t"a[4],a[5]}'

你照着这个自己再修改下吧,反正你应该是可以看懂的
5楼2012-12-09 23:42:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tracel

木虫 (正式写手)

引用回帖:
7楼: Originally posted by chembetsey at 2012-12-10 12:46:24
我写出来了,你要是感兴趣我发给你。...

贴出来,大家学习下写法嘛
9楼2012-12-10 16:51:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tracel

木虫 (正式写手)


jjdg: 金币+1, 赞同你的观点 2012-12-11 23:18:35
有问题就解决问题才是讨论的样子,总不能什么都让人帮你弄吧。
13楼2012-12-11 10:23:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tracel

木虫 (正式写手)

先看懂别人的脚本,稍微改下满足自己的要求,应该没什么难度吧
15楼2012-12-11 10:48:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tracel

木虫 (正式写手)

【答案】应助回帖

awk '{print "\033[40;33m"$1"\033[0m",$2}'

显示颜色的可以这样搞。
17楼2012-12-11 11:09:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wuy069 的主题更新
信息提示
请填处理意见