クラスタの動作状態を監視するには、次の行を出力するためにqstat
使用します。
job-ID prior name user state submit/start at queue slots ja-task-ID
-----------------------------------------------------------------------------------------------------------------
146767 2.75000 REMD xxxxxx Rr 03/26/2021 10:58:17 [email protected] 160
146811 2.75000 REMD xxxxxx r 03/26/2021 11:37:48 [email protected] 160
146862 2.25862 REMD xxxxxx Rq 03/26/2021 06:24:39 160
146911 2.19397 REMD xxxxxx Rq 03/26/2021 11:37:20 160
146768 0.00000 REMD xxxxxx hqw 03/13/2021 14:47:35 160
146769 0.00000 REMD xxxxxx hqw 03/13/2021 14:47:35 160
146770 0.00000 REMD xxxxxx hqw 03/13/2021 14:47:36 160
各行の最初の要素はジョブIDです。特定の範囲のジョブを表示する方法はありますか?たとえば、146868から146927までのジョブのみを表示する方法はありますか?ぜひ必要なようですgrep
。
答え1
さまざまな数字と一致する正規表現を書くことができますが、実際にはそれほど価値がありません。数値を数値として扱うことができるツールを使用することをお勧めします。たとえば、awkではこれは非常にマイナーなことです。ここでa
、およびb
はそれぞれ下限と上限であり、デフォルトでは$1
スペースに沿って分割される最初のフィールドです。
$ qstat | awk -v a=146868 -v b=146927 '$1 >= a && $1 <= b {print}'
146911 2.19397 REMD xxxxxx Rq 03/26/2021 11:37:20 160
(EREでは等価正規表現はと同じですが146(86[89]|8[789][0-9]|9[01][0-9]|92[0-7])
、そこでミスしない限り不可能ではありません。BREでは代替がないため不可能です。)
答え2
簡単な解決策を見つけました。
qstat | fgrep "$(seq 146868 146927)"