我正在使用群集。我将使用qsub命令来分配我的工作,我想要的是我可以取回工作ID,以便我可以监控工作。
基本上,我想要这样的事情:
#!/bin/bash
JOBID=$( qsub job1 )
# Monitoring base on $JOBID
我找到了一个页面http://wiki.ibest.uidaho.edu/index.php/Tutorial:_Submitting_a_job_using_qsub,它讨论了变量PBS_JOBID
,但我不知道如何使用它。有谁知道怎么做?
(我的解决方案现在是jobID='qsub task | cut -d ' ' -f 3'
)
答案 0 :(得分:7)
qsub
具有非常可预测的输出。许多自动提交系统(例如Grid接口)只是解析qsub
的输出,寻找jobid。
BLAHP项目(欧洲网格中间件)提供了解析示例。
jobID=`${pbs_binpath}/qsub $bls_tmp_file` # actual submission
...
# The job id is actually the first numbers in the string (slurm support)
jobID=`echo $jobID | awk 'match($0,/[0-9]+/){print substr($0, RSTART, RLENGTH)}'`
(source)
此代码已在生产中使用多年,并且已在PBS,PBS Pro和SLURM中用于qsub
。
答案 1 :(得分:6)
您可以使用-terse
:
$ echo sleep 5 | qsub -terse
3543