source: TOOLS/PACK_IPSL/archive_restart.sh @ 1755

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

Change name for list of restart and debug to tar (now with Jobname)

File size: 5.3 KB
Line 
1#!/bin/bash
2
3
4#on veut archiver les fichiers restart
5#Dans le cadre du demenagement ils seront renommes
6#ATM/Restart/****.nc
7#OCE/Restart/****.nc
8#...
9#sous la forme
10#RESTART/ATM_****.nc
11#RESTART/OCE_****.nc
12#Attention de bien conserver les dates d'origines
13#
14#Dans le cadre de la production nouvelle chaine
15#ils auront directement le bon nom
16#
17#On veut egalement que l'archive soit par periode de temps
18# cette periode est definie par la taille du pack donc connue
19# en entree du script (1M, 1Y, 5Y, 10Y etc...)
20#
21
22
23# $1= PATH/config_card d'une simulation avec
24# TagName/JobName/ExperimentName/SpaceName/DateBegin/DateEnd/PATH_SIMUL
25# $2=period_pack en M/m ou Y/y
26
27config_card=${1}
28LISTE_DMNFS=${2}
29
30
31export JOB_DIR=${JOB_DIR:-${PWD}}
32export IGCM_DEM=${IGCM_DEM:-${SCRATCHDIR}/IGCM_DEM}
33export IGCM_TMP=${IGCM_TMP:-${IGCM_DEM}/tmp}
34mkdir -p ${IGCM_DEM}
35mkdir -p ${IGCM_TMP}
36clean_tmp=${clean_tmp:-yes}
37EXE_DIR=$(dirname ${0})
38SCRIPT_NAME=$(basename ${0} )
39
40source ${EXE_DIR}/DEM_utilities.sh
41
42DEM_log -0 "Demarrage de ${SCRIPT_NAME}"
43
44
45#### 0- lecture de config.card
46#### on veut les renseignements suivants :
47#### JobName, PATH_SIMUL, DateBegin et DateEnd
48eval $(grep JobName ${config_card}) 
49eval $(grep PATH_SIMUL_FULL ${config_card}) 
50eval $(grep DateBegin ${config_card}) 
51eval $(grep DateEnd ${config_card}) 
52eval $(grep IGCM_DEM_SIMU ${config_card})
53
54
55#### Preparation de l'environnement
56# repertoire dans lequel seront renommes les fichiers de restart
57STORE_RESTART=$IGCM_DEM_SIMU/RESTART
58mkdir -p ${STORE_RESTART}
59
60# repertoire dans lequel nous stockerons les listes de restart a archiver
61RESTART_TAR=$IGCM_DEM_SIMU/restart_tar
62mkdir -p ${RESTART_TAR}
63
64# lecture de periodpack dans ${IGCM_DEM_SIMU}/period_pack.txt
65period_pack=`awk '{print $0} ' ${IGCM_DEM_SIMU}/period_pack.txt`
66
67DEM_log -1 "Period pack = ${period_pack}" 
68#### 1- renommer les fichiers ######
69DEM_log -1 "Renommer les fichiers de Restart"
70
71cd ${STORE_RESTART}
72rm -rf *
73
74# On les copie sur le scratchdir en changeant le nom et conservant la date
75awk '{print $2}' ${IGCM_DEM_SIMU}/liste_restart_files_config.txt > ${IGCM_TMP}/${$}.liste_restart_files.txt
76#grep ${PATH_SIMUL_FULL} ${LISTE_DMNFS} | grep Restart | awk '{print $3}' | sed '/^.*Restart$/d' >> ${IGCM_TMP}/${$}.liste_restart_files.txt
77
78 
79gawk -F/ '{dest_name=$(NF-2)("_") $(NF); system("ln -s " $0 " "dest_name)}' ${IGCM_TMP}/${$}.liste_restart_files.txt
80
81ls -l ${STORE_RESTART} > ${IGCM_TMP}/${$}.new_liste_restart_files.txt
82
83### 2- creer les listes de fichiers par periode ####
84DEM_log -1 "Creation des listes de fichiers par periode"
85### 2.1- extraire l'annee et le mois de DateBegin ###
86date_begin=${DateBegin}
87date_end=${DateEnd}
88
89year_begin=$(echo ${date_begin} | cut -c 1-4 )
90month_begin=$(echo ${date_begin} | cut -c 5-6 )
91year_end=$(echo ${date_end} | cut -c 1-4 )
92month_end=$(echo ${date_end} | cut -c 5-6 )
93
94
95### 2.2- creation des listes ###
96date_begin_pack=${date_begin}
97date_end_simulation=${date_end}
98
99month_begin_pack=${month_begin}
100year_begin_pack=${year_begin}
101
102number_pack=1
103
104while [ ${date_begin_pack} -le ${date_end_simulation} ]
105do
106
107DEM_log -1 "On calcule la date de fin du pack "
108
109   month_end_pack=${month_begin_pack}
110   year_end_pack=`expr ${year_begin_pack} + ${period_pack}`
111
112
113   date_end_pack=${year_end_pack}${month_end_pack}01   
114
115   for file in `awk '{print $9}' ${IGCM_TMP}/${$}.new_liste_restart_files.txt`; do
116   
117     extract_date_file=`echo ${file}  | sed -e "s/.*\${JobName}_//"`
118     date_file=`echo ${extract_date_file}| sed 's/\([0-9]\{8\}\)_.*$/\1/g'`
119
120#     DEM_log "date_file = ${date_file}"
121     if [  ${date_file} -lt ${date_end_pack} ]
122     then
123        if [ ${date_file} -ge ${date_begin_pack} ]
124        then
125#          DEM_log "${file} ${date_file} dans ${date_begin_pack} ${date_end_pack} "
126           echo ${file} >> ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt
127        fi
128     fi
129   
130   done
131
132#on archive les restart - le nom de l'archive contiendra ${yearbegin}${monthbegin}_${yearend}${monthend} 
133# end etant la date du dernier fichier contenu et non pas la premiere date suivant
134DEM_log -1 "Recherche de la date de fin reel pour nommer l'archive "
135#On classe par ordre alphabetique les fichiers contenus dans liste_pack_restart
136#la date du dernier fichier donnera la date de fin du pack
137   sort ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt > ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt.tmp
138   last_file=$(tail -n 1 ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt.tmp )
139   extract_date_file=$( echo ${last_file}  | sed -e "s/.*${JobName}_//" )
140   DateEnd_Restart=$(   echo ${extract_date_file}| sed 's/\([0-9]\{8\}\)_.*$/\1/g' )
141   mv ${IGCM_TMP}/${$}.liste_pack_restart_${number_pack}.txt.tmp ${RESTART_TAR}/${JobName}_restart_${date_begin_pack}_${DateEnd_Restart}.list
142
143
144DEM_log -1 "Passage de la commande Tar pour archiver la liste creee"
145#   tar -cf ${JobName}_${date_begin_pack}_${DateEnd_Restart}_restart.tar --dereference  --files-from ${RESTART_TAR}/tar_restart_${date_begin_pack}_${DateEnd_Restart}.list
146#   cat  ${RESTART_TAR}/tar_restart_${number_pack}.list | xargs rm
147
148
149DEM_log -1 "On defini le datebegin de la  prochaine periode pack"
150#on defini la periode pack suivante
151   month_begin_pack=${month_end_pack}
152   year_begin_pack=${year_end_pack}
153
154   date_begin_pack=${year_begin_pack}${month_begin_pack}01
155
156   number_pack=`expr ${number_pack} + 1`
157
158done
159
160
161cd ${EXE_DIR}
Note: See TracBrowser for help on using the repository browser.