2016-10-31 18 views
1

これは非常に簡単な質問かもしれませんが、私がジョブIDを持っていれば、SGEを介して送信されたジョブの状態をどのように取得できますか?私は基本的にジョブIDをチェックし、エラー状態になっているか、まだ実行中か、完了しているかどうかを確認したい。SGEジョブ状態を取得する方法

私はこの

qstat -u '*' | grep 123456 

のようなものを考えていたが、ジョブのIDが低い場合、それは私が欲しいもの以外の行を返すことがあります。このようなコマンドを使用すると...

qstat -j '123456' 

...ジョブの状態を返すように見えません。

答えて

0

私はTorque/Mauiに移行しました。そのため、ソリューションはGridEngineでは正確ではないかもしれません。

qstatgrepトライ単語ベースの検索使用するための

:私はqstat -f $jobidを使用してジョブの状態を取得することができます

qstat -u '*' | grep -w 123456 

あるいは、トック/マウイ島のためにawk

qstat -u '*' | awk '$1 == 123456 { print }' 

を使用する:

qstat -f 123456 | grep job_state 

多分あなたは似たようなことをすることができます-jオプション番目:

qstat -j $job_id | grep job_state 
+0

-fオプションが機能していないようです。 jobIDが無効なオプションであるというエラーが表示されます。それは 'qstat -j'としてうまく動作します。私はSGE 8.1.8 –

+0

を実際に使用しています。これを '-j'オプションを使うように変更しました。 – Vince

+0

私のバージョンのqstatのようですが、 '-j'オプションを使用しているときに' job_state'値を返しません。 –

1

次のコマンドを発行します。

qstat -xml 

結果はXML形式になります。あなたは結果を解析し、状態を抽出することができます。

<job_list state="pending"> 
    <JB_job_number>3150728</JB_job_number> 
    <JAT_prio>0.00000</JAT_prio> 
    <JB_name>snpReference</JB_name> 
    <JB_owner>me</JB_owner> 
    <state>hqw</state> 
    <JB_submission_time>2016-11-23T11:54:01</JB_submission_time> 
    <queue_name></queue_name> 
    <jclass_name></jclass_name> 
    <slots>1</slots> 
</job_list> 
0

ちょうどあなたの正規表現は、より具体的にする:

qstat | grep "^123456\s" 

あなたはジョブ全体数が指定する1つであるジョブのみを取得しますその方法を。

関連する問題