If you are a Bacula user, you most likely had the problem of a Director clogging up on one or more jobs getting stuck while others keep piling up. With the new directives for managing duplicate jobs, this should not happen anymore but last night I found out that 2 of my backup servers managed to dead-lock.
The resulting job queue was over 300 jobs long and restarting the Director did not seem to help. So I threw a little shell script together to use bconsole to cancel all jobs in a waiting state.
Us usual, use on your own risk, I only tested it on my servers and it worked fineā¦
#!/bin/bash jobIds=`echo 'status dir running' | bconsole | fgrep 'is waiting' | awk '{print $1}'` for i in $jobIds do if [ -z `echo "$i" | grep '^[0-9]\+$'` ] then echo "Error: job ID $i is not a number!" else echo "Killing waiting Bacula job $i" echo "cancel jobid=$i" | bconsole fi done