Thursday, July 05, 2012

how to qdel a range of jobs

For example, I want to kill jobs with ids ranging from 7823111 to 7823118. One way to do it is of course to list all IDs after qdel, such as 

$ qdel 7823111 7823112 7823113 7823114 7823115 7823116 7823117 7823118

You can also do this in an elegant way, using seq command to generate the sequence number:

$ echo `seq -f "%.0f" 7823111 7823118`
7823111 7823112 7823113 7823114 7823115 7823116 7823117 7823118

Note that if you are using job array (-t) to control jobs, then it's easier to kill list of jobs in the array. Here is what "man qdel" says:

-t array_range
The array_range argument is an integer id or a range of integers. Multiple ids or id ranges can be combined in a comma delimted list. Examples: -t 1-100 or -t 1,10,50-100


  1. good one. there were no examples using range so it was not clear to me. I helped my case to delete some 100 jobs quickly.

  2. qdel -u [user] can delete all queue tasks run by the same user. I find this helpful too.

  3. qdel {17979..18028} is simpler

  4. Anonymous6:35 PM

    thanks for this short one :)

  5. you can select jobs based on a variety of criteria using qselect and pipe them to qdel with xargs e.g.

    qselect -u | xargs qdel

    to delete all jobs of a given user, -s R selects jobs with the state running, see the qselect docs for more refined selections.

  6. This comment has been removed by the author.