HYDRA_development_version
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
jobScript.sh
Go to the documentation of this file.
1 #!/bin/bash
2 
3 # This is the generic jobscript to run jobs on GridEngine
4 #
5 # The script supports up to 7 parameters.
6 #
7 # The user specific part of the script is indicated below.
8 
9 
10 
11 par1="no"
12 par2="no"
13 par3="no"
14 par4="no"
15 par5="no"
16 par6="no"
17 par7="no"
18 
19 if [ $# -lt 1 ]
20 then
21  echo "Usage : jobScript.sh par1 [par2] [par2] [par3] [par4] [par5] [par6] [par7]"
22  sleep 3
23  exit
24 fi
25 
26 case "$#" in
27 
28 1) par1=$1
29  ;;
30 2) par1=$1
31  par2=$2
32  ;;
33 3) par1=$1
34  par2=$2
35  par3=$3
36  ;;
37 4) par1=$1
38  par2=$2
39  par3=$3
40  par4=$4
41  ;;
42 5) par1=$1
43  par2=$2
44  par3=$3
45  par4=$4
46  par5=$5
47  ;;
48 6) par1=$1
49  par2=$2
50  par3=$3
51  par4=$4
52  par5=$5
53  par6=$6
54  ;;
55 7) par1=$1
56  par2=$2
57  par3=$3
58  par4=$4
59  par5=$5
60  par6=$6
61  par7=$7
62  ;;
63 *) echo "Unsupported number of arguments"
64  echo "Usage : jobScript.sh par1 [par2] [par2] [par3] [par4] [par5] [par6] [par7]"
65  exit
66  ;;
67 esac
68  pathoutputlog=$par2
69  jobarrayFile=$par1
70 
71  # map back params for the job
72  input=$(awk "NR==$SGE_TASK_ID" $jobarrayFile) # get all params for this job
73 
74 
75  par1=$(echo $input | cut -d " " -f1)
76  par2=$(echo $input | cut -d " " -f2)
77  par3=$(echo $input | cut -d " " -f3)
78  par4=$(echo $input | cut -d " " -f4)
79  par5=$(echo $input | cut -d " " -f5)
80  par6=$(echo $input | cut -d " " -f6)
81  par7=$(echo $input | cut -d " " -f7)
82 
83  echo "input: $input"
84  echo "par1 = ${par1}"
85  echo "par2 = ${par2}"
86  echo "par3 = ${par3}"
87  echo "par4 = ${par4}"
88  echo "par5 = ${par5}"
89  echo "par6 = ${par6}"
90  echo "par7 = ${par7}"
91 
92 
93  format='+%Y/%m/%d-%H:%M:%S'
94 
95  host=$(hostname)
96 
97  date $format
98  echo ""
99  echo "--------------------------------"
100  echo "RUNNING ON HOST : " $host
101  echo "WORKING DIR : " $(pwd)
102  echo "USER is : " $USER
103  echo "JOBID : $JOB_ID"
104  echo "DISK USAGE /tmp :"
105  df -h /tmp
106  echo "--------------------------------"
107 
108 
109  echo ""
110  echo "--------------------------------"
111  echo "par1 = ${par1}"
112  echo "par2 = ${par2}"
113  echo "par3 = ${par3}"
114  echo "par4 = ${par4}"
115  echo "par5 = ${par5}"
116  echo "par6 = ${par6}"
117  echo "par7 = ${par7}"
118  echo "--------------------------------"
119  echo ""
120 
121 
122 
123  echo ""
124  echo "--------------------------------"
125  echo " DEBUG INFO"
126  echo "==> Kernel version information :"
127  uname -a
128  echo "==> C compiler that built the kernel:"
129  cat /proc/version
130  echo "==> load on this node:"
131  mpstat -P ALL
132  echo "==> actual compiler is"
133  gcc -v
134  echo "--------------------------------"
135  echo ""
136 
137 
138 
139 
140 
141 
142 
143 
144 ###################################################################
145 ###################################################################
146 # EDIT THIS PART TO EXECUTE YOUR JOB!
147 
148 
149 
150 #----------------------
151 # evironment
152  echo "==> running enironment script ${par1}"
153 . ${par1}
154 #----------------------
155 
156  echo "==> ldd ${par2}"
157  ldd $par2
158 
159  echo "==> execute program "
160 
161  outdir=$par4
162 
163  files=$(echo $par3 | sed 's/,/ /g')
164  for file in $files
165  do
166  file=$(echo $file | sed 's/#/,/g')
167  echo "==> $par2 $file $outdir $par5"
168  time $par2 $file $outdir $par5
169 
170  status=$?
171 
172 
173  echo "------------------------------------"
174  echo "MOVING OUTPUTFILES:"
175 
176  isList=$(echo $file | grep ",")
177 
178  if [ "${isList}" == "" ]
179  then
180  filename=$(basename ${file} | sed 's/.root$//')
181  mv -v ${outdir}/${filename}_dst_apr12.root ${outdir}/root/
182  else
183 
184  for f in $(echo $file | sed 's/,/ /g')
185  do
186  filename=$(basename ${f} | sed 's/.root$//')
187  mv -v ${outdir}/${filename}_dst_apr12.root ${outdir}/root/
188  done
189  fi
190  done
191 #---------------------------------------------------------------------
192 
193 
194 
195 # END EDIT YOUR EXECUT JOB!
196 ###################################################################
197 ###################################################################
198 
199 
200 
201 
202 
203 
204 
205  echo ""
206  echo "--------------------------------"
207  echo "Job with params "
208  echo "par1 = ${par1}"
209  echo "par2 = ${par2}"
210  echo "par3 = ${par3}"
211  echo "par4 = ${par4}"
212  echo "par5 = ${par5}"
213  echo "par6 = ${par6}"
214  echo "par7 = ${par7}"
215  echo "finsished!"
216  echo "--------------------------------"
217  echo ""
218 
219 
220  echo ""
221  echo "--------------------------------"
222  echo "MONITOR ENVIRONMENT:"
223  echo "JOB EXE :---------------------"
224  qstat -j $JOB_ID
225  #echo "HOST LOAD :---------------------"
226  #qhost -h $host
227  #echo "OTHER JOBS ON HOST:-------------"
228  #qhost -h $host -j
229  echo "DISK USAGE /tmp :---------------"
230  df -h /tmp
231  #echo "MEM/CPU USAGE :-----------------"
232  #qstat -j $JOB_ID | grep usage
233  echo "--------------------------------"
234 
235 
236 
237 
238  date $format
239 
240 
241  sleep 2
242 
243  # when running single file move log file name
244  # to output filename
245  if [ "$par3" == "$files" ]
246  then
247  echo "MOVING LOG FILE"
248  outfile=$(basename $par3)
249  mv ${pathoutputlog}/${JOB_NAME}.o${JOB_ID}.${SGE_TASK_ID} ${pathoutputlog}/${outfile}.log
250  fi
251 
252 
253