| 1 | #!/bin/sh
|
|---|
| 2 | #
|
|---|
| 3 |
|
|---|
| 4 | source /home/operator/condor/jobsourcefile
|
|---|
| 5 |
|
|---|
| 6 | notcount=0
|
|---|
| 7 | while (( $notcount < 100 ))
|
|---|
| 8 | do
|
|---|
| 9 | for (( i=0 ; i < ${#scripts[@]} ; i++ ))
|
|---|
| 10 | do
|
|---|
| 11 | date
|
|---|
| 12 | echo "sleeping $sleeptime..."
|
|---|
| 13 | sleep $sleeptime
|
|---|
| 14 | dayofweek=`date +%u`
|
|---|
| 15 | hour=`date +%k`
|
|---|
| 16 | source /home/operator/condor/jobsourcefile
|
|---|
| 17 | echo "script: ${scripts[$i]}"
|
|---|
| 18 | echo " day: $dayofweek hour: $hour"
|
|---|
| 19 | # running=`/usr/local/bin/condor_q -global | grep -c ' R '`
|
|---|
| 20 | running=`/usr/local/bin/condor_q -global | grep operator | grep -c ' R '`
|
|---|
| 21 | running=`setzero $running`
|
|---|
| 22 | echo " found $running jobs running"
|
|---|
| 23 | # queued=`/usr/local/bin/condor_q -global -format "job\n" ProcId | wc -l`
|
|---|
| 24 | queued=`/usr/local/bin/condor_q -global -format "%s\n" Owner | grep -c operator`
|
|---|
| 25 | queued=`setzero $queued`
|
|---|
| 26 | echo " found $queued jobs in the queue (incl. running jobs)"
|
|---|
| 27 | # runningscript=`/usr/local/bin/condor_q -global | grep ${scripts[$i]} | grep -c ' R '`
|
|---|
| 28 | runningscript=`/usr/local/bin/condor_q -global | grep operator | grep ${scripts[$i]} | grep -c ' R '`
|
|---|
| 29 | runningscript=`setzero $runningscript`
|
|---|
| 30 | echo " found $runningscript ${scripts[$i]} running"
|
|---|
| 31 | # queuedscript=`/usr/local/bin/condor_q -global | grep -c ${scripts[$i]}`
|
|---|
| 32 | queuedscript=`/usr/local/bin/condor_q -global | grep operator | grep -c ${scripts[$i]}`
|
|---|
| 33 | queuedscript=`setzero $queuedscript`
|
|---|
| 34 | echo " found $queuedscript ${scripts[$i]} in the queue (incl. running jobs)"
|
|---|
| 35 |
|
|---|
| 36 | #unguenstig, da es ja f versch scripte untersch sein kann
|
|---|
| 37 | # if [ "$runningscriptold" == "$runningscript" ]
|
|---|
| 38 | # then
|
|---|
| 39 | # echo "$runningscriptold = $runningscript"
|
|---|
| 40 | # sleeptime=`echo "2 * $sleeptime" | bc`
|
|---|
| 41 | # echo "new sleeptime: $sleeptime"
|
|---|
| 42 | # fi
|
|---|
| 43 | # runningscriptold=$runningscript
|
|---|
| 44 | pnototal=${pnototal[$hour]}
|
|---|
| 45 | echo " pnototal=$pnototal (allowed no of jobs)"
|
|---|
| 46 | if [ "$pnototal" -lt "$running" ]
|
|---|
| 47 | then
|
|---|
| 48 | echo " pnototal=$pnototal < $running (running) => continue"
|
|---|
| 49 | echo ""
|
|---|
| 50 | continue
|
|---|
| 51 | fi
|
|---|
| 52 | #choose array according to the day of the week
|
|---|
| 53 | case $dayofweek in
|
|---|
| 54 | 0 | 6) pnos=( ${pnoswe[@]} ) ;;
|
|---|
| 55 | *) pnos=( ${pnosweek[@]} ) ;;
|
|---|
| 56 | esac
|
|---|
| 57 | num=`echo "((( $i + 1 ) * 24 ) + ( $hour + 1 ) ) - 24 - 1 " | bc `
|
|---|
| 58 | pnoscript=${pnos[$num]}
|
|---|
| 59 | echo " => num=$num => pnoscript=$pnoscript (i.e. $pnoscript ${scripts[$i]} allowed)"
|
|---|
| 60 |
|
|---|
| 61 | echo " queued: $queued - pnototal: $pnototal"
|
|---|
| 62 | if [ "$queued" -lt "$pnototal" ]
|
|---|
| 63 | then
|
|---|
| 64 | # echo "$queued -lt $pnototal"
|
|---|
| 65 | # if [ "$queuedscript" -lt "$queued" ]
|
|---|
| 66 | # then
|
|---|
| 67 | # echo "$queuedscript -lt $queued"
|
|---|
| 68 | # queuedscript=$queued
|
|---|
| 69 | # fi
|
|---|
| 70 | echo " queued ${scripts[$i]}: $queuedscript - pno: $pnoscript"
|
|---|
| 71 | if [ "$queuedscript" -lt "$pnoscript" ]
|
|---|
| 72 | then
|
|---|
| 73 | pno=`echo " $pnoscript - $queuedscript " | bc`
|
|---|
| 74 | fi
|
|---|
| 75 | fi
|
|---|
| 76 |
|
|---|
| 77 | if [ "$pno" == "0" ]
|
|---|
| 78 | then
|
|---|
| 79 | echo " pno = $pno -> continue"
|
|---|
| 80 | echo ""
|
|---|
| 81 | continue
|
|---|
| 82 | fi
|
|---|
| 83 |
|
|---|
| 84 | date=`date +\%Y/\%m/\%d`
|
|---|
| 85 | condordir=/magic/datacenter/autologs/condor/$date
|
|---|
| 86 | if [ ! -d $condordir ]
|
|---|
| 87 | then
|
|---|
| 88 | mkdir -pv $condordir
|
|---|
| 89 | if [ ! -d $condordir ]
|
|---|
| 90 | then
|
|---|
| 91 | echo "could not make dir "$condordir
|
|---|
| 92 | exit
|
|---|
| 93 | fi
|
|---|
| 94 | fi
|
|---|
| 95 |
|
|---|
| 96 | echo " ---> starting $pno ${scripts[$i]}..."
|
|---|
| 97 | for (( j=1 ; j <= $pno ; j++ ))
|
|---|
| 98 | do
|
|---|
| 99 | echo "$i - $pno -> sleeping...."
|
|---|
| 100 | sleep 2
|
|---|
| 101 | if ! /usr/local/bin/condor_submit -a dir=$scriptsdir -a prog=${scripts[$i]} -a date=$date -a hour=`date +\%H` /home/operator/condor/run.condor 2>$errorfile
|
|---|
| 102 | then
|
|---|
| 103 | nail -s 'condor problem' $adrs < $errorfile
|
|---|
| 104 | echo "condor is not working -> exit"
|
|---|
| 105 | exit
|
|---|
| 106 | fi
|
|---|
| 107 | done
|
|---|
| 108 | echo ""
|
|---|
| 109 | done
|
|---|
| 110 | done
|
|---|