source: TOOLS/PACK_IPSL/showPackProgress.sh @ 1848

Last change on this file since 1848 was 1848, checked in by acosce, 12 years ago

Add some information in bilan + management of simulation tar

  • Property svn:executable set to *
File size: 5.9 KB
Line 
1#!/bin/bash
2
3export JOB_DIR=${LS_SUBCWD:-${PWD}}
4export EXE_DIR=${JOB_DIR}
5
6export INPUT_DMF_DATA=${SCRATCHDIR}/PSEUDO_DMNFS_light
7export OUTPUT_STORE=${SCRATCHDIR}/PSEUDO_DMNFS_STORE
8export OUTPUT_WORK=${SCRATCHDIR}/PSEUDO_DMNFS_WORK
9
10SCRIPT_NAME=$(basename ${0} )
11
12export IGCM_DEM=${SCRATCHDIR}/IGCM_DEM
13export IGCM_TMP=${SCRATCHDIR}/IGCM_DEM/tmp
14
15export config_card=${IGCM_DEM}/config_card.liste
16
17source ${EXE_DIR}/DEM_utilities.sh
18
19
20function getSimuName
21{   
22   config_card=$1
23   
24   baseName=$( basename $config_card )
25   simuName=`echo ${baseName} | sed 's;config_card_;;' `
26   echo $simuName
27
28}
29
30function getTimeTaken
31{
32   statFile=$1
33   if [ ! -e $statFile ]
34   then
35      echo "inconnu : pas de fichier status"
36      return
37   fi
38   
39   timeLine=`sed -n '1p' $statFile `
40   goodFormat=`echo $timeLine | grep -e '^meantime:[[:digit:]]*\.[[:digit:]]\{1,3\}$' | wc -l `
41   if [ "x$goodFormat" == "x0" ]
42   then
43       echo "inconnu : mauvais format du temps"
44       return
45   fi
46   
47   timeTaken=`echo $timeLine | sed 's;^meantime:;;' `
48   echo $timeTaken
49   
50}
51
52function progressStatus
53{
54   statFile=$1
55   echo "statFile=$1" >> showPackProgress.log
56   if [ ! -e $statFile ]
57   then
58      echo "Non traitee"
59      return
60   fi
61   echo "blabla" >> showPackProgress.log
62   echo "----------------------------------------------" >> showPackProgress.log
63   # echo "progressStatus..." # gpdebug : a virer
64   
65   # ------------------------------------------------------------------------------------------------
66   listLineNumWithKey=`grep -n -E '(COMPLETED|FAILED|DELEGATE)' $statFile | awk -F":" '{print $1}' ` 
67   # echo "listLineNumWithKey=$listLineNumWithKey" # gpdebug : a virer
68   
69  if [ "x$listLineNumWithKey" == "x" ]
70  then
71     echo "Statut illisible"
72     return
73  fi
74
75   # On trouve la derniere ligne du fichier status comportant un mot cle
76   max=0
77   for lineNum in $listLineNumWithKey
78   do
79      if [ $lineNum -gt $max ]
80      then
81          max=$lineNum
82      fi
83   done
84
85   # echo "max=$max" # gpdebug : a virer
86
87   lastLineWithKey=`sed -n "${max}p" $statFile `
88   # echo "lastLineWithKey=$lastLineWithKey" # gpdebug : a virer   
89   # ------------------------------------------------------------------------------------------------
90     
91   # lastLine=`tail -1 $statFile ` # gpdebug : a virer
92   
93   completed=`echo $lastLineWithKey | grep COMPLETED | sed 's; (.*)$;;' `
94   if [ "x${completed}" != "x" ]
95   then
96      echo $completed
97      return
98   fi
99   
100  failed=`echo $lastLineWithKey | grep FAILED | cut -d";" -f1 `
101  if [ "x${failed}" != "x" ]
102  then
103     echo $failed
104     return         
105  fi
106 
107  delegate=`echo $lastLineWithKey | grep DELEGATE `
108  if [ "x${delegate}" != "x" ]
109  then
110     echo "DELEGATE"
111     return
112  fi
113 
114}
115
116
117#################################
118####### Main script #############
119#################################
120> showPackProgress.log # vider le fichier de log
121
122totalNbOfList=0
123for CONFIG in $( awk '{print $1}' ${IGCM_DEM}/config_card.liste )
124do
125   PATH_SIMU=$( dirname $CONFIG )
126   nbListInConfig=`find $PATH_SIMU -name "*list" | wc -l `
127   totalNbOfList=$(( $totalNbOfList + $nbListInConfig ))
128done
129
130# echo "totalNbOfList=$totalNbOfList"
131# exit 0 # gpdebug : a virer
132
133nbOfListsPacked=0
134nbOfListsFailed=0
135TotalNbInodes=0
136TotalSimuTar=0
137
138for CONFIG in $( awk '{print $1}' ${IGCM_DEM}/config_card.liste ) ; do
139
140    DEM_state=$( DEM_read_state ${IGCM_DEM}/config_card.liste ${CONFIG} )
141
142    if [[ "${DEM_state}" != "TarDone" ]] ; then
143
144         simuName=$( getSimuName $CONFIG )
145         echo "*******************************************"
146         echo "simulation : $simuName"
147         echo "*******************************************"
148         export PATH_SIMU=$( dirname $CONFIG )
149         # echo "PATH_SIMU = $PATH_SIMU"
150       
151         listOfDir="output_ncrcat output_tar restart_tar debug_tar store_cp work_cp"
152         for dir in $listOfDir
153         do
154             echo "   ${dir} :"
155             if [ ! -d $PATH_SIMU/${dir} ]
156             then
157                echo "      ${dir} n'existe pas pour cette simu"
158                continue
159             fi
160           
161             listFilesInDir=`find $PATH_SIMU/${dir} -name "*list" | wc -l `
162             if [ "x$listFilesInDir" == "x0" ]
163             then
164                echo "       -- no list --"
165                continue           
166             fi
167           
168             setList=$( ls $PATH_SIMU/${dir}/*list )
169
170             for set in $setList
171             do
172                  listName=`echo $(basename $set) | sed 's;\.list$;;' | sed 's;\.nc$;;' `
173                  ListNbInode=`cat $set |wc -l`
174                  TotalNbInodes=$(( $TotalNbInodes + $ListNbInode ))
175                  statusfile=${set%%.list}.status
176                  status=$( progressStatus $statusfile ) # gpdebug : a retablir
177                  timeTaken="???"
178                  # progressStatus $statusfile # gpdebug : a virer
179                  # exit 0 # gpdebug : a virer
180               
181                  packFailed=`echo $status | grep -E '(DELEGATE|FAILED|illisible)' | wc -l `
182                  if [ "x${packFailed}" != "x0" ]
183                  then
184                     nbOfListsFailed=$(( $nbOfListsFailed + 1 ))
185                  fi
186               
187                  packSuccess=`echo $status | grep "COMPLETED" | wc -l `
188                  if [ "x${packSuccess}" != "x0" ]
189                  then
190                     timeTaken=$( getTimeTaken $statusfile )
191                     nbOfListsPacked=$(( $nbOfListsPacked + 1 ))
192                  fi
193                 
194                  echo "       $listName : $status | time : $timeTaken"
195             done
196         done
197    else
198#si "${DEM_state}" == "TarDone"
199
200         simuName=$( getSimuName $CONFIG )
201         echo "*******************************************"
202         echo "simulation : $simuName TAR"
203         echo "*******************************************"
204         TotalSimuTar=$(( $TotalSimuTar + 1 ))
205    fi
206done
207
208NbInodeBefore=`cat ${IGCM_DEM}/Listing.txt |wc -l`
209find $IGCM_DEM -printf "%y %s %p \n" >> ${IGCM_DEM}/ListingEnd.txt
210NbInodeAfter=`cat ${IGCM_DEM}/ListingEnd.txt |wc -l`
211echo
212echo "##################"
213echo "#####  BILAN #####"
214echo "##################"
215echo "nb of Lists packed with success : ${nbOfListsPacked} / ${totalNbOfList}"
216echo "nb of fails : $nbOfListsFailed"
217echo "nb of inodes packed : $TotalNbInodes"
218echo "nb simul full tared : $TotalSimuTar"
219echo "nb inode before : $NbInodeBefore"
220echo "nb inode after : $NbInodeAfter"
221
222
223
224
Note: See TracBrowser for help on using the repository browser.