Changeset 2045 for TOOLS/PACK_IPSL/archive_restart.sh
- Timestamp:
- 04/05/13 17:34:38 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TOOLS/PACK_IPSL/archive_restart.sh
r2022 r2045 76 76 if [ "x${STORE_RESTART}" != "x" ] 77 77 then 78 rm -rf *78 rm -rf * 79 79 fi 80 80 # On les copie sur le scratchdir en changeant le nom et conservant la date … … 87 87 ls -l ${STORE_RESTART} > ${IGCM_TMP}/${$}.new_liste_restart_files.txt 88 88 89 ### 2- creer les listes de fichiers par periode #### 90 DEM_log -1 "Creation des listes de fichiers par periode" 91 ### 2.1- extraire l'annee et le mois de DateBegin ### 92 date_begin=${DateBegin} 93 date_end=${DateEnd} 94 95 year_begin=$(echo ${date_begin} | cut -c 1-4 ) 96 month_begin=$(echo ${date_begin} | cut -c 5-6 ) 97 year_end=$(echo ${date_end} | cut -c 1-4 ) 98 month_end=$(echo ${date_end} | cut -c 5-6 ) 99 100 101 ### 2.2- creation des listes ### 102 date_begin_pack=${date_begin} 103 date_end_simulation=${date_end} 104 105 month_begin_pack=${month_begin} 106 year_begin_pack=${year_begin} 107 108 number_pack=1 109 while [ ${date_begin_pack} -le ${date_end_simulation} ] 110 do 111 112 DEM_log -1 "On calcule la date de fin du pack " 113 114 month_end_pack=${month_begin_pack} 115 year_end_pack=`expr ${year_begin_pack} + ${period_pack}` 116 117 118 date_end_pack=${year_end_pack}${month_end_pack}01 119 89 ### creation de liste en fonction du type de restart 120 90 if [ "x${ON_IDRIS}" == "xno" ] 121 91 then 122 for file in `awk '{print $9}' ${IGCM_TMP}/${$}.new_liste_restart_files.txt`; do 123 extract_date_file=`echo ${file} | sed -e "s/.*\${JobName}_//"` 124 date_file=`echo ${extract_date_file}| sed 's/\([0-9]\{8\}\)_.*$/\1/g'` 125 126 # DEM_log "date_file = ${date_file}" 127 if [ ${date_file} -lt ${date_end_pack} ] 128 then 129 if [ ${date_file} -ge ${date_begin_pack} ] 130 then 131 # DEM_log "${file} ${date_file} dans ${date_begin_pack} ${date_end_pack} " 132 echo ${file} >> ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt 133 fi 134 fi 135 done 92 awk '{if (NR >1) print $9}' ${IGCM_TMP}/${$}.new_liste_restart_files.txt > ${IGCM_TMP}/${$}.new_liste_restart_files.txt_tmp 136 93 else 137 for file in `awk '{print $8}' ${IGCM_TMP}/${$}.new_liste_restart_files.txt`; do 138 extract_date_file=`echo ${file} | sed -e "s/.*\${JobName}_//"` 139 date_file=`echo ${extract_date_file}| sed 's/\([0-9]\{8\}\)_.*$/\1/g'` 140 141 # DEM_log "date_file = ${date_file}" 142 if [ ${date_file} -lt ${date_end_pack} ] 143 then 144 if [ ${date_file} -ge ${date_begin_pack} ] 145 then 146 # DEM_log "${file} ${date_file} dans ${date_begin_pack} ${date_end_pack} " 147 echo ${file} >> ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt 148 fi 149 fi 150 done 94 awk '{if (NR >1) print $8}' ${IGCM_TMP}/${$}.new_liste_restart_files.txt > ${IGCM_TMP}/${$}.new_liste_restart_files.txt_tmp 151 95 fi 152 96 sort ${IGCM_TMP}/${$}.new_liste_restart_files.txt_tmp > ${IGCM_TMP}/${$}.order_new_liste_restart_files.txt 97 ref=`awk -F_ '{if (NR==1) print $1}' ${IGCM_TMP}/${$}.order_new_liste_restart_files.txt` 98 99 i=1 100 for new_file in `awk '{print $0}' ${IGCM_TMP}/${$}.order_new_liste_restart_files.txt`; do 101 new_ref=$( echo ${new_file} | sed -e "s/_.*//") 102 103 if [ ${new_ref} == ${ref} ]; then 104 echo ${new_file} >> ${IGCM_TMP}/${$}.restart_list_${i}.txt 105 else 106 ref=${new_ref} 107 (( i = $i + 1 )) 108 echo ${new_file} >> ${IGCM_TMP}/${$}.restart_list_${i}.txt 109 fi 110 done 111 112 113 114 j=1 115 while [[ $j -le $i ]]; do 116 117 ### 2- creer les listes de fichiers par periode #### 118 DEM_log -1 "Creation des listes de fichiers par periode" 119 ### 2.1- extraire l'annee et le mois de DateBegin ### 120 date_begin=${DateBegin} 121 date_end=${DateEnd} 122 123 year_begin=$(echo ${date_begin} | cut -c 1-4 ) 124 month_begin=$(echo ${date_begin} | cut -c 5-6 ) 125 year_end=$(echo ${date_end} | cut -c 1-4 ) 126 month_end=$(echo ${date_end} | cut -c 5-6 ) 127 128 129 ### 2.2- creation des listes ### 130 date_begin_pack=${date_begin} 131 date_end_simulation=${date_end} 132 133 month_begin_pack=${month_begin} 134 year_begin_pack=${year_begin} 135 136 number_pack=1 137 echo date_end_simulation : $date_end_simulation 138 while [ ${date_begin_pack} -le ${date_end_simulation} ] 139 do 140 141 echo "On calcule la date de fin du pack " 142 143 month_end_pack=${month_begin_pack} 144 year_end_pack=`expr ${year_begin_pack} + ${period_pack}` 145 146 147 date_end_pack=${year_end_pack}${month_end_pack}01 148 echo date_end_pack $date_end_pack 149 150 for file in `awk '{print $1}' ${IGCM_TMP}/${$}.restart_list_${j}.txt`; do 151 extract_date_file=`echo ${file} | sed -e "s/.*\${JobName}_//"` 152 date_file=`echo ${extract_date_file}| sed 's/\([0-9]\{8\}\)_.*$/\1/g'` 153 154 if [ ${date_file} -lt ${date_end_pack} ] 155 then 156 if [ ${date_file} -ge ${date_begin_pack} ] 157 then 158 echo ${file} >> ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt 159 grep -v ${file} ${IGCM_TMP}/${$}.restart_list_${j}.txt > ${IGCM_TMP}/${$}.restart_list_${j}.txt.tmp 160 mv ${IGCM_TMP}/${$}.restart_list_${j}.txt.tmp ${IGCM_TMP}/${$}.restart_list_${j}.txt 161 fi 162 163 fi 164 if [ ${date_file} -gt ${date_end_pack} ] 165 then 166 break 167 fi 168 done 169 170 171 172 DEM_log -1 "On definit le datebegin de la prochaine periode pack" 173 #on definit la periode pack suivante 174 month_begin_pack=${month_end_pack} 175 year_begin_pack=${year_end_pack} 176 177 date_begin_pack=${year_begin_pack}${month_begin_pack}01 178 179 number_pack=`expr ${number_pack} + 1` 180 181 done 182 183 ((j = $j + 1 )) 184 done 185 186 compt_pack=1 187 while [[ $compt_pack -le $number_pack ]]; do 153 188 #on archive les restart - le nom de l'archive contiendra ${yearbegin}${monthbegin}_${yearend}${monthend} 154 189 # end etant la date du dernier fichier contenu et non pas la premiere date suivant 155 DEM_log -1 "Recherche de la date de fin reel pour nommer l'archive "190 DEM_log -1 "Recherche de la date de fin reel pour nommer l'archive " 156 191 #On classe par ordre alphabetique les fichiers contenus dans liste_pack_restart 157 192 #la date du dernier fichier donnera la date de fin du pack 158 if [[ -f ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt ]] ; then 159 sort ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt > ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt.tmp 160 161 first_file=$(head -n 1 ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt.tmp ) 162 extract_date_file=$( echo ${first_file} | sed -e "s/.*${JobName}_//" ) 163 DateBegin_Restart=$(echo ${extract_date_file}| sed 's%\([0-9]\{8\}\)_.*$%\1%g' ) 164 165 last_file=$(tail -n 1 ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt.tmp ) 166 extract_date_file=$( echo ${last_file} | sed -e "s/.*${JobName}_//" ) 167 DateEnd_Restart=$( echo ${extract_date_file}| sed 's/\([0-9]\{8\}\)_.*$/\1/g' ) 168 mv ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt.tmp ${RESTART_TAR}/${JobName}_restart_${DateBegin_Restart}_${DateEnd_Restart}.list 169 fi 170 171 DEM_log -1 "Passage de la commande Tar pour archiver la liste creee" 172 # tar -cf ${JobName}_${date_begin_pack}_${DateEnd_Restart}_restart.tar --dereference --files-from ${RESTART_TAR}/tar_restart_${date_begin_pack}_${DateEnd_Restart}.list 173 # cat ${RESTART_TAR}/tar_restart_${number_pack}.list | xargs rm 174 175 176 DEM_log -1 "On definit le datebegin de la prochaine periode pack" 177 #on definit la periode pack suivante 178 month_begin_pack=${month_end_pack} 179 year_begin_pack=${year_end_pack} 180 181 date_begin_pack=${year_begin_pack}${month_begin_pack}01 182 183 number_pack=`expr ${number_pack} + 1` 184 193 if [[ -f ${IGCM_TMP}/${$}.liste_pack_restart_${compt_pack}.txt ]] ; then 194 sort ${IGCM_TMP}/${$}.liste_pack_restart_${compt_pack}.txt > ${IGCM_TMP}/${$}.liste_pack_restart_${compt_pack}.txt.tmp 195 196 first_file=$(head -n 1 ${IGCM_TMP}/${$}.liste_pack_restart_${compt_pack}.txt.tmp ) 197 extract_date_file=$( echo ${first_file} | sed -e "s/.*${JobName}_//" ) 198 DateBegin_Restart=$(echo ${extract_date_file}| sed 's%\([0-9]\{8\}\)_.*$%\1%g' ) 199 200 last_file=$(tail -n 1 ${IGCM_TMP}/${$}.liste_pack_restart_${compt_pack}.txt.tmp ) 201 extract_date_file=$( echo ${last_file} | sed -e "s/.*${JobName}_//" ) 202 DateEnd_Restart=$( echo ${extract_date_file}| sed 's/\([0-9]\{8\}\)_.*$/\1/g' ) 203 mv ${IGCM_TMP}/${$}.liste_pack_restart_${compt_pack}.txt.tmp ${RESTART_TAR}/${JobName}_restart_${DateBegin_Restart}_${DateEnd_Restart}.list 204 fi 205 206 compt_pack=`expr ${compt_pack} + 1` 185 207 done 208 186 209 187 210 cd ${EXE_DIR}
Note: See TracChangeset
for help on using the changeset viewer.