Changeset 1880


Ignore:
Timestamp:
09/13/12 19:22:57 (12 years ago)
Author:
gpincka
Message:

Suppression des donnees traitees correctement. Attention : les cmds rm sont commentees, mais avec les rm, les tests faits sont concluants

Location:
TOOLS/PACK_IPSL
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TOOLS/PACK_IPSL/launch_and_measureTime.sh

    r1869 r1880  
    189189} 
    190190 
     191function searchListsToDestroy 
     192{ 
     193     outputToSearchIn=$1 
     194     listToRmvFile=$2 
     195     cat ${outputToSearchIn} | grep -e '^#executed by' | awk '{ if ($9 == 0) {print $12} }' >> ${listToRmvFile} 
     196} 
     197function removeFilesInLists 
     198{ 
     199     setOfFileLstsToRmv=$1 
     200     rmvedFiles=$2 
     201     linksToEraseFile=$3 
     202     realDataToEraseFile=$4 
     203      
     204     old_IFS=$IFS     # sauvegarde du séparateur de champ   
     205     IFS=$'\n'     # nouveau séparateur de champ, le caractère fin de ligne 
     206      
     207     # Suppression des donnees autres que celles de type "debug" et "restart". 
     208     for lst in $( cat $setOfFileLstsToRmv | grep -v -E '(restart_tar|debug_tar)' ) 
     209     do 
     210         opt= 
     211         lstName=$( basename $lst ) 
     212          
     213         if [ "${lstName}" == "tar_full_simul.list" ] || [ "${lstName}" == "cp_files.list" ] 
     214         then 
     215             opt="r" 
     216         fi 
     217                  
     218         for file in $( cat $lst ) 
     219         do 
     220             echo "rm -f${opt} $file" >> ${rmvedFiles} 
     221             # rm -f${opt} $file 
     222         done      
     223     done 
     224      
     225     # Pour les listes de type "debug" et "restart", les listes ne comportent 
     226     # que des liens : uniquement leur nom de base, pas leur path 
     227     # Il faut retrouver leur path, detruire le lien et le fichier qu'il pointe. 
     228            
     229     # Recherche de l'ensemble des fichiers a detruire : les liens + les donnees pointees par les liens  
     230     for lst in $( cat $setOfFileLstsToRmv | grep -E '(restart_tar|debug_tar)' ) 
     231     do 
     232         # Recuperation du repertoire contenant les fichiers de liens 
     233         dir_containing_links= 
     234         is_debug_tar_lst=`echo $lst | grep "debug_tar" | wc -l ` 
     235         if [ "x${is_debug_tar_lst}" != "x0" ] 
     236         then 
     237             dir_containing_links="DEBUG" 
     238         else 
     239             dir_containing_links="RESTART" 
     240         fi 
     241          
     242         tar_dir=$( dirname $lst ) 
     243         simu_dir=$( dirname $tar_dir ) 
     244          
     245         LINK_DIR="${simu_dir}/${dir_containing_links}" 
     246         if [ ! -d  $LINK_DIR ] 
     247         then 
     248             echo "Suppression des donnees :" >> $badFailureFile 
     249             echo "Le repertoire sense contenir des liens symboliques :" >> $badFailureFile 
     250             echo "${LINK_DIR}" >> $badFailureFile 
     251             echo "n'existe pas." >> $badFailureFile 
     252             exit 1 
     253         fi 
     254          
     255         # 
     256         # ls sur le reperoire de lien et insertion du path absolu avant chaque lien. 
     257         ls -1 ${LINK_DIR} | sed "s;^;${LINK_DIR}/;" >> ${linksToEraseFile} 
     258          
     259         # Recuperation des donnees reelles pointees par les liens. 
     260         ls -1 -lrt ${LINK_DIR} | awk -F"->" '{print $2}' | sed 's;^ ;;' >> ${realDataToEraseFile} 
     261     done 
     262      
     263     # Destruction des liens et des donnees pointees par les liens pour les listes  
     264     # de type "debug" et "restart" 
     265      
     266     # Destroy links 
     267     for file in $( cat ${linksToEraseFile} ) 
     268     do 
     269         echo "rm -f $file" >> ${rmvedFiles} 
     270         # rm -f $file 
     271     done 
     272      
     273     # Destroy real datas 
     274     for file in $( cat ${realDataToEraseFile} ) 
     275     do 
     276         echo "rm -f $file" >> ${rmvedFiles} 
     277         # rm -f $file 
     278     done      
     279      
     280     IFS=$old_IFS     # rétablissement du séparateur de champ par défaut 
     281} 
     282 
     283 
    191284export RANDOM=$$ # random seed 
    192285function gives_random_number 
     
    202295#MSUB -r pack_ipsl          # Nom du job                 
    203296### mutable directives ### 
    204 #MSUB -o /ccc/dmfbuf/import_data.2/ccrt/dmnfs12/cont003/bacasable/GUILLAUME/PSEUDO_DMNFS_PROGRESS/zIGCM_OUT/detailed_pack_output/pack_ipsl_%I.o 
    205 #MSUB -e /ccc/dmfbuf/import_data.2/ccrt/dmnfs12/cont003/bacasable/GUILLAUME/PSEUDO_DMNFS_PROGRESS/zIGCM_OUT/detailed_pack_output/pack_ipsl_%I.e 
     297#MSUB -o /ccc/dmfbuf/import_data.2/ccrt/dmnfs12/cont003/bacasable/GUILLAUME/PSEUDO_DMNFS_PROGRESS/zIGCM_OUT_only_2_simu/LMDZ4OR_v2/detailed_pack_output/pack_ipsl_%I.o 
     298#MSUB -e /ccc/dmfbuf/import_data.2/ccrt/dmnfs12/cont003/bacasable/GUILLAUME/PSEUDO_DMNFS_PROGRESS/zIGCM_OUT_only_2_simu/LMDZ4OR_v2/detailed_pack_output/pack_ipsl_%I.e 
    206299#MSUB -n 7 
    207 #MSUB -T 900 
     300#MSUB -T 1500 
    208301#MSUB -A tgcc0013 
    209302#MSUB -q standard 
     
    236329export checkFileTmp="checkTmp__try__${numCurrentTry}__instance__${numNewInstance}.txt" 
    237330 
     331export listsOfFilesToRemove="${progressDir}/listsToRmv__try__${numCurrentTry}__instance__${numNewInstance}.txt" 
     332export removedFiles="${progressDir}/removedFiles__try__${numCurrentTry}__instance__${numNewInstance}.txt" 
     333 
     334# Les 2 fichiers suivants sont crees pour la destruction des liens et des donnees pointes par ces liens 
     335# dans le cas de listes de type "debug" ou "restart" 
     336export linksToDestroyFile="${progressDir}/linksToDestroy__try__${numCurrentTry}__instance__${numNewInstance}.txt" 
     337export realDataToDestroyFile="${progressDir}/realDataToDestroy__try__${numCurrentTry}__instance__${numNewInstance}.txt" 
     338 
    238339export noInterruptFile="${progressDir}/noInterrupt__try__${numCurrentTry}__instance__${numNewInstance}.txt" 
    239340 
    240  
    241 # a virer 
    242 #echo "inputCmd=$inputCmd" >> $badFailureFile 
    243 #echo "nextInputCmd=$nextInputCmd" >> $badFailureFile 
    244 #echo "output=$nextInputCmd" >> $badFailureFile 
    245 #echo "reportFile=$nextInputCmd" >> $badFailureFile 
    246 #echo "noInterruptFile=$noInterruptFile" >> $badFailureFile 
    247  
    248 # exit 0 # a virer 
    249  
    250 # a virer 
    251 #if [ ${numNewInstance} -ge 4 ] 
    252 #then 
    253 #    echo "inputCmd=$inputCmd" >> $badFailureFile 
    254 #    echo "nextInputCmd=$nextInputCmd" >> $badFailureFile 
    255 #    echo "output=$nextInputCmd" >> $badFailureFile 
    256 #    echo "reportFile=$nextInputCmd" >> $badFailureFile 
    257 #    echo "noInterruptFile=$noInterruptFile" >> $badFailureFile 
    258 #    echo >> $badFailureFile 
    259 #fi 
    260341 
    261342if [ ${numCurrentTry} -le 1 ] && [ ${numNewInstance} -le 1 ] 
     
    295376    else # numNewInstance == 1 
    296377        numPrevTry=$(( $numCurrentTry - 1 )) 
    297         # echo "numCurrentTry=$numCurrentTry" >> $badFailureFile # a virer 
    298         # echo "numPrevTry=$numPrevTry" >> $badFailureFile # a virer 
    299         # exit 1 # a virer 
    300378        numLastInstInstanceInPrevTry=$( getNumeroOfLastInstance $numPrevTry ) 
    301         noInterruptFile="${progressDir}/noInterrupt__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.txt" 
    302         if [ ! -e $noInterruptFile ] 
     379        noInterruptFile_prev_try="${progressDir}/noInterrupt__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.txt" 
     380        if [ ! -e ${noInterruptFile_prev_try} ] 
    303381        then 
    304382            # il y a eu interruption non prevue au dernier essai, il faut recomposer la liste des cmds avec les resultats 
     
    319397            update_tasks_list ${nextInputCmd_of_LastInst} ${output_of_LastInst} ${inputCmd_of_LastInst} 
    320398            cat $nextInputCmd_of_LastInst > ${inputCmd} 
     399             
     400             
     401            # Il faut aussi detruire les donnees correctement traitement a l'essai precedent, derniere instance. 
     402            listsOfFilesToRemoveFromPrevTry="${progressDir}/listsToRmvFromPrev__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.txt" 
     403            removedFilesFromPrevTry="${progressDir}/removedFilesFromPrev__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.txt" 
     404            linksToDestroyFileFromPrevTry="${progressDir}/linksToDestroyFromPrev__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.txt" 
     405            realDataToDestroyFileFromPrevTry="${progressDir}/realDataToDestroyFromPrev__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.txt" 
     406                     
     407            searchListsToDestroy $output_of_LastInst $listsOfFilesToRemoveFromPrevTry 
     408            removeFilesInLists $listsOfFilesToRemoveFromPrevTry $removedFilesFromPrevTry $linksToDestroyFileFromPrevTry $realDataToDestroyFileFromPrevTry 
     409             
    321410        else 
    322411            nextInputCmd_of_LastInst="${progressDir}/nextInputCmd__try__${numPrevTry}__instance__${numLastInstInstanceInPrevTry}.list" 
     
    335424 
    336425# Initialisation du rapport : par defaut, les calculs ont ete interrompus 
    337 echo "No report. Le computation must have interrupted." > $reportFile 
     426echo "No report. Le computation must have been interrupted." > $reportFile 
    338427 
    339428# exit 0 # a virer 
    340429 
    341430# a virer ######################################### 
    342 if [ ${numNewInstance} -ge 10 ] 
    343 then 
    344     echo >> $badFailureFile 
    345     echo "10eme instance. STOP." >> $badFailureFile 
    346     exit 1 
    347 fi 
     431# if [ ${numNewInstance} -ge 10 ] 
     432# then 
     433#     echo >> $badFailureFile 
     434#     echo "10eme instance. STOP." >> $badFailureFile 
     435#     exit 1 
     436# fi 
    348437################################################### 
    349438# startTime=$( getDateMilliSeconds ) # suppr 
     
    377466update_tasks_list $nextInputCmd $output $inputCmd 
    378467 
     468 
     469# Verifications sur qq listes (dont le traitement semble correct) : 
     470# ---------------------------------------------------------------------------------------- 
    379471if [ "x${doYouWantCheck}" == "xyes" ] 
    380472then 
    381     # Verifications sur qq listes (dont le traitement semble correct) : 
    382     # ---------------------------------------------------------------------------------------- 
    383473    if [ "x${nbListsToCheck}" == "x" ] 
    384474    then 
     
    417507            echo "$checkCmd ==> not OK ==> stop everything." >> $checkFile 
    418508            echo "$checkCmd ==> not OK ==> stop everything." >> $badFailureFile 
    419             # exit 1 # a retablir 
     509            exit 1 # a retablir 
    420510        else 
    421511            echo "$checkCmd ==> OK" >> $checkFile 
     
    427517 
    428518    rm $checkFileTmp 
    429     # ----- Fin verif ------------------------------------------------------------------------ 
    430519fi 
    431  
     520# ----- Fin verif ------------------------------------------------------------------------ 
     521 
     522 
     523# Suppression des données des fichiers de listes correctement traitees ------------------- 
     524# Recherche des listes de fichiers de donnees a detruire : 
     525# Parmi celles traitees, celles qui ont ete traitees correctement 
     526> $listsOfFilesToRemove 
     527> $removedFiles 
     528> $linksToDestroyFile 
     529> $realDataToDestroyFile 
     530 
     531searchListsToDestroy $output $listsOfFilesToRemove 
     532 
     533removeFilesInLists $listsOfFilesToRemove $removedFiles $linksToDestroyFile $realDataToDestroyFile 
     534 
     535 
     536 
     537 
     538 
     539 
     540# ----- Fin suppression de donnees ------------------------------------------------------- 
     541 
     542# Si le fichier dans variable "noInterruptFile" inexistant, une interruption non prevue a eu lieu 
    432543echo "no interruption has occured" > ${noInterruptFile} 
    433544 
    434 # exit 0 # a virer 
     545# exit 0 # a virer 
    435546 
    436547# Tout s'est bien passe 
     
    443554fi 
    444555 
    445 # y a t il progression avant traitements et apres ? 
    446 # ------------------------------------------------- 
     556# Y a t il progression entre avant traitements et apres ? 
     557# ------------------------------------------------------ 
    447558# Dans la fonction 'check_progress', on a besoin de verifier le code 
    448559# de retour du traitement des listes : en effet, si les 2 fichiers a comparer 
  • TOOLS/PACK_IPSL/parallelPack.sh

    r1873 r1880  
    275275ccc_msub launch_and_measureTime.sh 
    276276 
    277 DEM_log -0 "Fin de ${SCRIPT_NAME}" 
    278  
     277tpsAvantRendreLaMain=15 
    279278 
    280279elapsedTime=0 
    281 while [ $elapsedTime -lt 500 ] 
     280while [ $elapsedTime -lt $tpsAvantRendreLaMain ] 
    282281do 
    283282    sleep 5 
     
    292291done 
    293292 
    294 if [ ${elapsedTime} -ge 500 ] 
    295 then 
    296     echo "Les 500 sec sont ecoulees, les traitements continuent..." 
    297 fi 
    298  
    299  
    300  
    301  
     293if [ ${elapsedTime} -ge $tpsAvantRendreLaMain ] 
     294then 
     295    echo "Les $tpsAvantRendreLaMain sec sont ecoulees, les traitements continuent..." 
     296fi 
     297 
     298 
     299DEM_log -0 "Fin de ${SCRIPT_NAME}" 
     300 
Note: See TracChangeset for help on using the changeset viewer.