удалять задания, убирая вывод qstat и отправляя jobid в qdel? - PullRequest
10 голосов
/ 04 января 2011

Я использую планировщик заданий PBS в своем кластере и хочу удалить задания старше определенной даты, используя qdel; в качестве альтернативы было бы достаточно иметь возможность отсортировать результаты qstat по дате.

qstat дает этот вывод:

job-ID  prior   name       user         state submit/start at     queue                          slots ja-task-ID 
-----------------------------------------------------------------------------------------------------------------
 326539 0.50500 run        user         r     01/06/2011 11:13:34 all.q@compute-0-0.local            1        
 326594 0.50500 run        user         r     01/06/2011 11:13:34 all.q@compute-0-0.local            1    

и я могу удалять задания с помощью qdel:

qdel 326539

и задания, которые я хочу удалить, можно найти с помощью grep:

qstat > foo; grep 01/06 foo

Моя текущая работа заключается в том, чтобы вставить вывод сверху в электронную таблицу, отсортировать по идентификатору задания и затем qdel {min..max},

Можно ли объединить эти шаги в одну команду?

Помощь приветствуется.

1 Ответ

10 голосов
/ 07 января 2011

awk

qstat | awk '$6 ~ "01/06" {cmd="qdel " $1; system(cmd); close(cmd)}'

Bash

#!/bin/bash

match="01/06"

while read job; do
  set -- $job
  if [[ $6 =~ $match ]]; then
    qdel "$1"
  fi
done < <(qstat)

Если вы хотите выполнить пробный прогон, измените qdel "$1" на echo qdel "$1", чтобы увидеть, что он сделал бы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...