클러스터의 작업 상태를 모니터링하려면 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)"