- Timestamp:
- 2015-08-14T18:05:48+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting_func.sh
r5685 r5689 1 1 #!/bin/bash 2 2 3 4 mkdir -p ${TEST_DIR} ${REFE_DIR} 3 5 4 6 ## Messenger filenames … … 26 28 27 29 # 'Failed' status with 'Unknown error' by default 28 echo $ST >> ${FILE_STAT}; echo 'Unknown error' >> ${FILE_RESU} 30 echo $ST \ 31 >> ${FILE_STAT} 32 echo 'Unknown error' \ 33 >> ${FILE_RESU} 29 34 } 30 35 … … 33 38 local dat=$( date -ud ${DATE} +"%F %R %Z" ) 34 39 35 echo $dat >> ${FILE_DATE} 40 echo $dat \ 41 >> ${FILE_DATE} 36 42 } 37 43 … … 60 66 if [ $dir == ${DIR_XIOS} ]; then 61 67 rev_loc=$( svn info $dir | awk '(NR == 9) {print $NF}' ) 62 echo 'XIOS '${rev_loc} >> model.log 68 echo 'XIOS '${rev_loc} \ 69 >> model.log 63 70 echo "<a href=\"https://forge.ipsl.jussieu.fr/ioserver/changeset/${rev_loc}\" target=\"_blank\">${rev_loc}</a>" \ 64 71 >> ${FILE_XIOS} … … 69 76 ${svn_cmd} $dir 70 77 rev_loc=$( svn info $dir | awk '(NR == 9) {print $NF}' ) 71 (( ${rev_loc} >= $rev )) && rev=${rev_loc} 72 done 73 74 echo 'NEMOGCM '$rev >> model.log 78 [ ${rev_loc} -gt $rev ] && rev=${rev_loc} 79 done 80 81 echo 'NEMOGCM '$rev \ 82 >> model.log 75 83 echo "<a href=\"https://forge.ipsl.jussieu.fr/nemo/changeset/$rev\" target=\"_blank\">$rev</a>" \ 76 84 >> ${FILE_NEMO} … … 84 92 soft_rel='' 85 93 86 if (( ${I_MODULE} == 1 )); then94 if [ $IMOD -eq 1 ]; then 87 95 soft_rel=$( echo $LOADEDMODULES | sed "s/.*$soft\/\([0-9.a-z_]*\).*/\1/i" ) 88 96 else … … 93 101 ## Cleaning characters string to display proper soft name 94 102 soft=$( echo $soft | sed 's#\\##g; s#[/-]$##' ) 95 echo $soft ${soft_rel} >> model.log 96 done 97 98 sed -n 4p model.log >> ${FILE_COMP}; sed -n 5p model.log >> ${FILE_MPIN} 99 sed -n 6p model.log >> ${FILE_NCDF} 103 echo $soft ${soft_rel} \ 104 >> model.log 105 done 106 107 sed -n 4p model.log \ 108 >> ${FILE_COMP} 109 sed -n 5p model.log \ 110 >> ${FILE_MPIN} 111 sed -n 6p model.log \ 112 >> ${FILE_NCDF} 100 113 } 101 114 … … 113 126 local files_list='' mesg='Same' 114 127 115 for file in inputs_list.txtnamelist_* *.xml cpp_*; do128 for file in 'inputs_list.txt' *namelist_* *.xml cpp_*; do 116 129 dif='' 117 118 if [ -e ${REFE_DIR}/$file ]; then 119 dif=$( diff -q $file ${REFE_DIR}/$file ) 120 else dif=0; fi 121 122 if [ -n "$dif" ]; then 123 mesg='Different' 124 [ "$dif" != '0' ] && echo $dif && files_list+=$file' ' 125 fi 126 127 done 128 129 echo $mesg | tee -a ${FILE_INPT} 130 if [ -e ${REFE_DIR}/$file ]; then dif=$( diff -q $file ${REFE_DIR}/$file ); else dif=0; fi 131 if [ -n "$dif" ]; then mesg='Different'; [ "$dif" != '0' ] && echo $dif && files_list+=$file' '; fi 132 done 133 134 [ $mesg == 'Same' ] && echo $mesg 135 echo $mesg \ 136 >> ${FILE_INPT} 130 137 [ -n "${files_list}" ] && echo 'Inputs : '${files_list}'differ<br>' \ 131 138 >> temp_${FILE_COMM} … … 139 146 140 147 while [[ $( ${JOB_LIST} | grep ${JOB_ID} ) && ${time_elapsed} -lt ${TIME_LIMI} ]]; do 141 printf "\n%s\n" ${outline// /#} >> computation.log 142 ${JOB_INFO} ${JOB_ID} >> computation.log 148 printf "\n%s\n" ${outline// /#} \ 149 >> computation.log 150 ${JOB_INFO} ${JOB_ID} \ 151 >> computation.log 143 152 sleep ${time_increment} 144 153 time_elapsed=$(( ${time_elapsed} + ${time_increment} )) … … 147 156 sleep ${time_increment} 148 157 149 if (( ${time_elapsed} == ${TIME_LIMI} )); then158 if [ ${time_elapsed} -eq ${TIME_LIMI} ]; then 150 159 ${JOB_DELE} ${JOB_ID} &> /dev/null 151 let TIME_LIMIT/=3600 152 export ${TIME_LIMIT} 160 export TIME_LIMIT/=3600 153 161 get_out 6 154 162 fi … … 159 167 local files_list='' 160 168 161 for file in ocean.output*.stat; do169 for file in 'ocean.output' *.stat; do 162 170 [ ! -e ${REFE_DIR}/$file ] && export ST='FAILED' && get_out 7 163 171 diff -q $file ${REFE_DIR}/$file 164 (( $? != 0 ))&& export ST='FAILED' && files_list+=$file' '172 [ $? -ne 0 ] && export ST='FAILED' && files_list+=$file' ' 165 173 done 166 174 … … 192 200 nb_dom=$( find -name "${file}_[0-9]*.nc" | wc -l | awk '{ print $1 }' ) 193 201 194 if (( ${nb_dom} > 1 )); then202 if [ ${nb_dom} -gt 1 ]; then 195 203 ${NEMO_TRBD}/rebuild_nemo -t $NPROC $file ${nb_dom} > /dev/null 196 204 [ $? -eq 0 ] && rm -f ${file}_[0-9]*.nc > /dev/null 197 elif (( ${nb_dom} == 0 )); then205 elif [ ${nb_dom} -eq 0 ]; then 198 206 export ST='FAILED' && get_out 8 199 207 fi 200 208 201 209 ## Compare restart files at same time step 202 if (( $tmsp == ${TIME_STEP} )); then210 if [ $tmsp -eq ${TIME_STEP} ]; then 203 211 if [ -e ${REFE_DIR}/$file.nc ]; then 204 212 ## UNIX `cmp` not suitable (timestamp in .nc file) … … 206 214 | awk '/records/ {print $0}' | sed '2 s/^/,/' | tr -d '\n' ) 207 215 208 if [[ -n "$dif" && (( $( echo $dif | awk '{print $1}' ) -ne 0 ))]]; then216 if [[ -n "$dif" && $( echo $dif | awk '{print $1}' ) -ne 0 ]]; then 209 217 export ST='FAILED' && files_list+=$file' ' 210 218 let dift+=$( echo $dif | awk '{print $1}' ) … … 212 220 fi 213 221 214 else export ST='FAILED' && get_out 7; fi 215 216 else continue; fi 222 else 223 export ST='FAILED' && get_out 7 224 fi 225 226 else 227 continue 228 fi 217 229 218 230 done 219 231 done 220 232 221 if (( $dift != 0 )); then 222 echo 'Restarts: '${files_list}$dift' record(s) differ<br>' \ 223 >> temp_${FILE_COMM} 224 else echo 'No restart differ'; fi 225 226 else export ST='FAILED'; fi 233 if [ $dift -ne 0 ]; then 234 echo 'Restarts: '${files_list}$dift' record(s) differ<br>' | tee -a temp_${FILE_COMM} 235 else 236 echo 'No restart differ' 237 fi 238 239 else 240 export ST='FAILED' 241 fi 227 242 228 243 } … … 247 262 248 263 echo $line 249 printf "$line<br>" >> temp_${FILE_COMM} 264 printf "$line<br>" \ 265 >> temp_${FILE_COMM} 250 266 } 251 267 … … 267 283 if [ -f ${REFE_DIR}/trusting_$PATTERNAME.txt ]; then cmd='tail -1'; else cmd='cat'; fi 268 284 269 $cmd ${FILE_TRUS} >> ${REFE_DIR}/trusting_$PATTERNAME.txt 285 $cmd ${FILE_TRUS} \ 286 >> ${REFE_DIR}/trusting_$PATTERNAME.txt 270 287 271 288 ## Send mail only when FAILED … … 285 302 `cat ${TEST_DIR}/${FILE_TRUS}` 286 303 END_MAIL 287 # cat ${TEST_DIR}/${FILE_TRUS} \288 # >> trusting.mail289 304 mail -s "[NEMO Trusting ${NEMO_HPCC} ${REFE_CONF} ${NEMO_BRAN}] $ST $ERR" $EMAIL \ 290 305 < trusting.mail … … 319 334 fi 320 335 321 sed -i "2 s/.*/$ST/" 336 sed -i "2 s/.*/$ST/" ${FILE_STAT} && sed -i "2 s/.*/$ERR/" ${FILE_RESU} 322 337 323 338 ## Save tested configuration if trusting failed … … 328 343 fi 329 344 330 mesg_make 331 mesg_publish 345 if [ $ERR -eq 5 ]; then 346 print_step 'Comments'; comments 'E R R O R' 347 else 348 print_step 'Comments'; comments 'W A R N I N G' 349 fi 350 351 print_step 'Trusting outcome'; mesg_make; mesg_publish 332 352 333 353 exit 0
Note: See TracChangeset
for help on using the changeset viewer.