如何从xterm中检索lsf队列参数

时间:2014-03-11 22:55:13

标签: xterm lsf

让我们说我已经在不同的队列中发起了大量的xterm。现在他们都弄乱了我的屏幕,我丢失了哪一个。我想将LSF作业ID和请求的机器内存资源粘贴到xterm标题栏中。 (我知道我可以在启动时做到这一点,但我们假设我已经将所有这些xterms放在我的桌面上,并且我想在事后坚持使用标题)

我可以使用它将文本放入xterm标题:

echo -e "\033]2; You can rent this place for a commercial. \007"

我在考虑这样的事情:

get name out of uname -n 
get machine resources for name out of bjobs <<== I don't know how to do that!!!
stick interesting stuff into header
run this in all my xterm.

我想摆脱bjobs的重要事情是:

  • 机器大小(所以我知道我可以在那个xterm中启动哪些大小的作业)
  • LSF工作ID,以便我知道如何杀死它。

我如何启动xterm的示例:

qsub -q o_cpu_128G -J Gerts -P gf104 -n 8 -m "rel57" -R "span[hosts=1]" xterm -sb

我离开bjobs的东西

bjobs
JOBID   USER    STAT  QUEUE      FROM_HOST   EXEC_HOST   JOB_NAME   SUBMIT_TIME
8510290 ggottsc RUN   o_cpu      sc-xterm-02 8*sc-sim-21 Gerts     Mar  5 14:44
7347117 ggottsc RUN   o_cpu      sc-xterm-02 8*l-sim-156 Gerts     Mar 10 11:48
9081323 ggottsc RUN   o_cpu      sc-xterm-02 8*l-sim-237 Gerts     Mar 11 10:21

谢谢, 格特

1 个答案:

答案 0 :(得分:0)

我假设你的'qsub'命令是bsub的包装器,以交互方式提交作业?

如果是这样,对于jobId,您应该能够查看xterm中的环境变量$ LSB_JOBID来获取它。所以你可以运行类似的东西:

echo -e "\033]2; Job ID: $LSB_JOBID \007"

将当前终端的作业ID输入标题。

对于“机器尺寸”,我不清楚你的意思。听起来你对机器的记忆感兴趣,但你可以从很多地方得到这个。根据您问题的标题,我假设您希望从您提交作业的队列名称中获取此名称(在您的示例中为o_cpu_128G)。如果是这种情况,您还应该在变量$ LSB_QUEUE下的环境中找到它,这样您就可以在xterm窗口标题中显示您的队列名称和您的jobid:

echo -e "\033]2; Job ID: $LSB_JOBID Queue: $LSB_QUEUE \007"

或者,您可以尝试通过解析/ proc / meminfo或'free -m'之类的命令输出来确定主机上的实际总/可用内存。