[1709] | 1 | #!/bin/bash |
---|
[1822] | 2 | # set -vx # gpdebug : a virer ######## |
---|
[1709] | 3 | # prend en argument le path et le nom d'un fichier param (argument de la commande |
---|
| 4 | # ccc_archive avec option ipsl_pack) |
---|
| 5 | # ex : ./find_directory_simul.job fichier_param_test1.txt liste_fichier_dmnfs |
---|
| 6 | # ex : find_directory_simul.job param_SL.txt /cscratch/cont003/labetoul/FROM_CCRT_INFORMATIONS_DMNFS/information_dmnfs_2012-03-21 |
---|
| 7 | |
---|
| 8 | #------------------------------- |
---|
| 9 | # A modifier avant utilisation : |
---|
| 10 | #-------------------------------- |
---|
| 11 | |
---|
| 12 | LISTE_SIMUL=${1} |
---|
| 13 | LISTE_DMNFS=${2} |
---|
[1837] | 14 | echo $LISTE_SIMUL $LISTE_DMNFS |
---|
[1709] | 15 | # ---- |
---|
| 16 | export JOB_DIR=${JOB_DIR:-${PWD}} |
---|
| 17 | export IGCM_DEM=${IGCM_DEM:-${SCRATCHDIR}/IGCM_DEM} |
---|
| 18 | export IGCM_TMP=${IGCM_TMP:-${IGCM_DEM}/tmp} |
---|
| 19 | mkdir -p ${IGCM_DEM} |
---|
| 20 | mkdir -p ${IGCM_TMP} |
---|
| 21 | clean_tmp=${clean_tmp:-yes} |
---|
| 22 | EXE_DIR=$(dirname ${0}) |
---|
| 23 | SCRIPT_NAME=$(basename ${0} ) |
---|
| 24 | source ${EXE_DIR}/DEM_utilities.sh |
---|
[1822] | 25 | |
---|
[1837] | 26 | echo "apres sources" ${SCRIPT_NAME} |
---|
| 27 | |
---|
[1822] | 28 | # gpdebug : verif si le present script a ete execute jusqu'au bout ######### |
---|
| 29 | MonitoringInfo="${SCRIPT_NAME}-->OK" |
---|
| 30 | generalMonitoring "$MonitoringInfo" |
---|
| 31 | |
---|
[1709] | 32 | DEM_log -0 "Demmarrage de ${SCRIPT_NAME}" |
---|
[1822] | 33 | |
---|
[1709] | 34 | cd ${JOB_DIR} |
---|
| 35 | # ---- |
---|
[1822] | 36 | # gpdebug : Execute la function errorReceive() si reception d'un signal TERM |
---|
| 37 | trap 'DEM_errorReceive' TERM ######## |
---|
[1709] | 38 | |
---|
[1822] | 39 | # gpdebug : on augmente la liste des proc à détruire en cas d'erreur bloquante du présent proc |
---|
| 40 | export listPID="$$ ${listPID}" ######### |
---|
| 41 | |
---|
[1709] | 42 | LISTE_SIMUL=${1} |
---|
| 43 | LISTE_DMNFS=${2} |
---|
| 44 | |
---|
| 45 | LISTE_SIMUL_NAME=$(basename ${LISTE_SIMUL} ) |
---|
| 46 | |
---|
[1822] | 47 | echo "gpdebug : ${IGCM_TMP}/${$}.liste_Restart.txt" # gpdebug : a virer ####### |
---|
[1709] | 48 | |
---|
| 49 | # Pour tous les fichiers ou repertoires contenus dans le fichier de parametres |
---|
| 50 | for DIR in $( awk '{print $0}' ${LISTE_SIMUL} ) ; do |
---|
[1837] | 51 | |
---|
[1715] | 52 | DEM_log -1 ${SCRIPT_NAME} - Inspection de ${DIR}"/" |
---|
[1822] | 53 | # trouve la liste des repertoires restart sous l'arborescence |
---|
| 54 | |
---|
| 55 | # grep ${DIR}"/" ${LISTE_DMNFS} | grep Restart | awk '{print $3}' | sed 's%/Restart.*%%' >> ${IGCM_TMP}/${$}.liste_Restart.txt # gpdebug : suppr |
---|
| 56 | |
---|
| 57 | # gpdebug : s'il n'y a pas de rep Restart, on saute ############################################################################### |
---|
[1852] | 58 | listRestart=`grep ${DIR}"/" ${LISTE_DMNFS} | grep Restart/ | awk '{print $3}' | sed 's%/Restart.*%%' ` |
---|
| 59 | |
---|
| 60 | if [ "x${listRestart}" == "x" ] ; |
---|
[1822] | 61 | then |
---|
| 62 | # DEM_errorSend "${SCRIPT_NAME}:${LINENO}:Pas de Repertoire Restart dans ${DIR}" "${$}" # gpdebug : a virer ######## |
---|
| 63 | echo "########## Attention :" |
---|
| 64 | echo "${SCRIPT_NAME}:${LINENO}:Pas de Repertoire Restart ou de fichiers Restart dans ${DIR}" |
---|
| 65 | continue |
---|
| 66 | fi |
---|
| 67 | echo "${listRestart}" >> ${IGCM_TMP}/${$}.liste_Restart.txt |
---|
| 68 | # gpdebug : fin ######################################################################################################################### |
---|
| 69 | done |
---|
| 70 | # DEM_errorSend "${SCRIPT_NAME}:${LINENO}:On arrete expres !" $$ # gpdebug : a virer ######## |
---|
[1709] | 71 | |
---|
[1822] | 72 | # Pour le cas ou aucune simu n aurait ete detectee |
---|
| 73 | if [ -e ${IGCM_TMP}/${$}.liste_Restart.txt ] |
---|
| 74 | then |
---|
| 75 | listRestartNbLines=`cat ${IGCM_TMP}/${$}.liste_Restart.txt | wc -l ` |
---|
| 76 | if [ "x${listRestartNbLines}" == "x0" ] |
---|
| 77 | then |
---|
| 78 | DEM_errorSend "${SCRIPT_NAME}:${LINENO}:Il n existe aucune simulation !" # "${$}" |
---|
| 79 | fi |
---|
| 80 | else |
---|
| 81 | DEM_errorSend "${SCRIPT_NAME}:${LINENO}:Il n existe aucune simulation !" # "${$}" |
---|
| 82 | fi |
---|
| 83 | |
---|
| 84 | |
---|
[1709] | 85 | |
---|
| 86 | # On cherche le path (deux crans au dessus des repertoires Restart) |
---|
| 87 | DEM_log -1 "Recherche du path" |
---|
| 88 | |
---|
| 89 | for DIR in $( awk '{print $0}' ${IGCM_TMP}/${$}.liste_Restart.txt ) ; do |
---|
| 90 | DEM_log -3 ${SCRIPT_NAME} - Recherche path : ${DIR} |
---|
| 91 | |
---|
[1715] | 92 | #gestion des cas particulier tels que la creation de l'etat initial avec lmdz (JobName/ATM/Output/Restart/ au lieu de JobName/ATM/Restart/) |
---|
| 93 | PATH_SIM=$( dirname ${DIR} ) |
---|
| 94 | lastdir=$( echo $PATH_SIM | sed -e "s%.*/%%") |
---|
| 95 | if [ $lastdir != "ATM" ]; then |
---|
| 96 | dirname ${DIR} >> ${IGCM_TMP}/${$}.path_simul.txt |
---|
| 97 | else |
---|
| 98 | dirname ${PATH_SIM} >> ${IGCM_TMP}/${$}.path_simul.txt |
---|
| 99 | fi |
---|
| 100 | |
---|
[1709] | 101 | done |
---|
| 102 | |
---|
| 103 | # On retire les doublons pour avoir la liste des simulations a tester |
---|
| 104 | DEM_log -1 "Suppression des doublons" |
---|
| 105 | |
---|
| 106 | awk '{if (x[$0] != "") next ; print $0 ; x[$0]=$0}' <${IGCM_TMP}/${$}.path_simul.txt >> liste_simul_${LISTE_SIMUL_NAME} |
---|
| 107 | awk '{if (x[$0] != "") next ; print $0 ; x[$0]=$0}' <liste_simul_${LISTE_SIMUL_NAME} >> liste_simul_${LISTE_SIMUL_NAME}.tmp${$} |
---|
[1717] | 108 | mv liste_simul_${LISTE_SIMUL_NAME}.tmp${$} ${IGCM_DEM}/liste_simul_${LISTE_SIMUL_NAME} |
---|
| 109 | rm -f liste_simul_${LISTE_SIMUL_NAME} |
---|
[1709] | 110 | |
---|
[1822] | 111 | # gpdebug : envoi du nombre de simu dans un "nbSimu.txt" du rep de suivi |
---|
| 112 | echo `cat ${IGCM_DEM}/liste_simul_${LISTE_SIMUL_NAME} | wc -l ` > $nbSimuFile |
---|
| 113 | |
---|
[1709] | 114 | DEM_log -1 "Fichier cree : liste_simul_${LISTE_SIMUL_NAME}" |
---|
| 115 | |
---|
[1822] | 116 | |
---|
[1709] | 117 | [[ "${clean_tmp}" = "yes" ]] && rm -f ${IGCM_TMP}/${$}.path_simul.txt |
---|
| 118 | [[ "${clean_tmp}" = "yes" ]] && rm -f ${IGCM_TMP}/${$}.liste_Restart.txt |
---|
| 119 | |
---|
[1822] | 120 | # gpdebug : le script n'a pas rencontre d'erreur. On l'inscrit dans le fichier de suivi |
---|
| 121 | echo $MonitoringInfo >> $generalMonitorFile |
---|
| 122 | |
---|
[1709] | 123 | DEM_log -0 "Fin de ${SCRIPT_NAME}" |
---|