source: client/shared/scripts/ogRestaurarSoftIncremental

qndtest
Last change on this file was 987a20d, checked in by alonso <alonso@…>, 11 years ago

Repaso de las funciones de sincronización

git-svn-id: https://opengnsys.es/svn/branches/version1.0@4086 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100755
File size: 7.3 KB
Line 
1#!/bin/bash
2#___________________________________________________________________
3#
4#  RESTAURAR IMAGEN INCREMENTAL
5#___________________________________________________________________
6#
7# Parámetros recibidos desde el cliente:
8#
9# $1 Número de disco
10# $2 Número de particion
11# $3 Nombre canónico de la imagen básica (sin extensión)
12# $4 Dirección del repositorio
13# $5 Nombre canónico del software incremental (sin extensión)
14# $6 Tipo de transmisión 0=Unicast 1=Multicast
15# $7 Es una cadena "nnn" tipo flags que codifica varios parametros.
16#               Tiene el formato "nnn" donde "n" vale 0 ó 1.   
17#               1XX: Gestionar fichero completo en lugar de diferencas
18#               X1X: Eliminar archivos de la partición que no estén en la imagen
19#               XX1: Comprimir archivos para enviarlos por la red
20#               El valor X indica que no importa el valor que tenga el dato
21# $8 Es una cadena "nnnn" tipo flags que codifica varios parametros.
22#               Tiene el formato "nnnn" donde "n" vale 0 ó 1.   
23#               1XXX: Borrar la particion de destino antes de restaurar la imagen basica
24#               X1XX: Copiar Imagen básica también a la cache
25#               XX1X: Borrar previamente la imagen basica de la cache antes de copiarla
26#               XXX1: No borrar archivos en destino
27#               El valor X indica que no importa el valor que tenga el dato
28# $9 Método de clonación 0=Desde caché 1=Desde repositorio
29# $10 Metodo de sincronizacion  1=Sincronización1  2=Sincronizacion2
30# $11 Ruta de origen de la Imagen (Carpeta)
31#___________________________________________________________________
32#
33# Control parámetros
34#___________________________________________________________________
35
36        PROG="$(basename $0)"
37        if [ $# -lt 6 ]; then
38                usage=" ndisco nparticion nombre_imagen_basica ip_repositorio copiar_a_caché "
39                usage="$usage Borrar_cache_previamente metodo_clonación Ruta_origen"
40                ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage"
41                exit $?
42        fi
43       
44        DISCO=$1
45        NPART=$2
46        NOMBREIMG=$3
47        IPREPOSITORIO=$4
48        NOMBREIMGINC=$5
49       
50        flag=$7
51        echo "flah:$flag">/tmp/log
52        WHLFILE=${flag:0:1}
53        RMVFILE=${flag:1:1}
54        CMPFILE=${flag:2:1}
55
56        flag=$8
57        echo "flah:$flag">/tmp/log
58        BORRARIMG=${flag:0:1}
59        COPIACACHE=${flag:1:1}
60        BORRACACHE=${flag:2:1}
61        NOBORRACHIVOS=${flag:3:1}
62       
63        METCLONA=$9
64        RUTAORIGEN=${11}
65#___________________________________________________________________
66#
67# Variables y configuración logs
68#___________________________________________________________________
69       
70        source /opt/opengnsys/scripts/ImagenesSincronizadas.lib
71
72#___________________________________________________________________
73#
74# Activa navegador para ver progreso
75#___________________________________________________________________
76
77        coproc /opt/opengnsys/bin/browser -qws http://localhost/cgi-bin/httpd-log.sh
78#___________________________________________________________________
79#
80# Proceso
81#___________________________________________________________________
82
83        echo "Restauracion de imagen incremental..." | tee -a $OGLOGSESSION $OGLOGFILE
84       
85        # Borrado previo de la partición
86        if [ $BORRARIMG -eq 1 ]; then
87                if [ -n $RUTAORIGEN ]; then
88                        echo "Borrando carpeta $PARTICION$RUTAORIGEN" | tee -a $OGLOGSESSION $OGLOGFILE
89                    rm -R $PARTICION$RUTAORIGEN         
90                else
91                        echo "Formateando la particion" | tee -a $OGLOGSESSION $OGLOGFILE
92                        ogFormat $DISCO $PARTICION $TIPOPARTICION
93                        RETVAL=$?       
94                        if [ $RETVAL -ne 0 ]; then
95                                 kill $COPROC_PID
96                           exit $OG_ERR_PARTITION
97                        fi 
98                fi         
99        fi
100
101        # Sincronización desde repositorio
102        if [ $METCLONA = 1 ]; then
103                if [ $COPIACACHE = 0 ]; then   
104                        echo "Restaurando imagen basica desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
105                        ORIGEN="$REPOSITORIO/$NOMBREIMG/"       
106                        DESTINO=$PARTICION$RUTAORIGEN
107                        # Restauración de la imagen básica
108                        echo "Sincronizando imagen basica entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
109                        restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1
110                        RETVAL=$?
111                        if [ $RETVAL -ne 0 ]; then
112                                 kill $COPROC_PID
113                           exit $OG_ERR_IMAGE
114                        fi 
115
116                        # Restauración de la imagen incremental
117                        echo "Restaurando imagen incremental desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
118                        ORIGEN="$REPOSITORIO/$NOMBREIMGINC/"   
119                        DESTINO=$PARTICION$RUTAORIGEN
120                        OP_DELETE=""
121                        # Restauración de la imagen incremental
122                        echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
123                        restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1
124                        restauraListaAcl $ORIGEN $DESTINO $SISTEMAFICHERO $DISCO $NPART
125                        RETVAL=$?
126                        kill $COPROC_PID
127                        echo "!!! Finaliza correctamente !!! la restauracion de imagen incremental $NOMBREIMGINC desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
128                        exit $RETVAL
129                fi             
130        fi     
131       
132        # Restauración desde la caché
133        echo "Restaurando desde la cache" | tee -a $OGLOGSESSION $OGLOGFILE
134       
135        # Comprobar si existe caché
136        CACHE=$(montaCache)
137        if [ -z $CACHE ]; then
138                echo "No se ha podido restaurar la imagen desde la cache" | tee -a $OGLOGSESSION $OGLOGFILE
139        ogRaiseError $OG_ERR_NOTCACHE "CACHE"
140                                kill $COPROC_PID
141        exit $?
142        fi                     
143
144        # Borrar imagen de la caché
145        if [ $BORRACACHE -eq 1 ]; then
146                echo "Borrando imagen basica $NOMBREIMG de la cache" | tee -a $OGLOGSESSION $OGLOGFILE
147            rm -R $CACHE$OGIMG/$NOMBREIMG
148                echo "Borrando imagen incremental $NOMBREIMGINC de la cache" | tee -a $OGLOGSESSION $OGLOGFILE
149            rm -R $CACHE$OGIMG/$NOMBREIMGINC
150        fi
151       
152        # Actualización de la caché
153        echo "Actualizando cache local desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
154       
155        ORIGEN="$REPOSITORIO/$NOMBREIMG/"
156        DESTINO="$CACHE$OGIMG/$NOMBREIMG/"
157        echo "Sincronizando imagen basica entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
158        restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1     
159        RETVAL=$?       
160        if [ $RETVAL -ne 0 ]; then
161                 kill $COPROC_PID
162           exit $OG_ERR_IMAGE
163        fi                     
164        ORIGEN="$REPOSITORIO/$NOMBREIMGINC/"
165        DESTINO="$CACHE$OGIMG/$NOMBREIMGINC/"
166        echo "Sincronizando imagen incremental entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
167        restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1     
168        RETVAL=$?       
169        if [ $RETVAL -ne 0 ]; then
170                 kill $COPROC_PID
171           exit $OG_ERR_IMAGE
172        fi     
173
174 echo "!!! Finaliza correctamente !!! copia de imagen basica e incremental a cache local" | tee -a $OGLOGSESSION $OGLOGFILE
175
176        # Restauración desde caché a la partición
177       
178        echo "Copiando imagen basica a la partición desde cache local" | tee -a $OGLOGSESSION $OGLOGFILE
179        ORIGEN="$CACHE$OGIMG/$NOMBREIMG/"
180        DESTINO=$PARTICION$RUTAORIGEN
181        echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
182        restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 2     
183        RETVAL=$?       
184        if [ $RETVAL -ne 0 ]; then
185                 kill $COPROC_PID
186           exit $OG_ERR_IMAGE
187        fi
188       
189        echo "Copiando imagen incremental a la partición desde cache local" | tee -a $OGLOGSESSION $OGLOGFILE
190        ORIGEN="$CACHE$OGIMG/$NOMBREIMGINC/"
191        DESTINO=$PARTICION$RUTAORIGEN
192        OP_DELETE=""
193        echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
194        restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 2     
195        restauraListaAcl $ORIGEN $DESTINO $SISTEMAFICHERO $DISCO $NPART
196        RETVAL=$?       
197        if [ $RETVAL -ne 0 ]; then
198                 kill $COPROC_PID
199           exit $OG_ERR_IMAGE
200        fi
201        echo "!!! Finaliza correctamente !!! restauracion imagen incremental $NOMBREIMGINC desde cache local" | tee -a $OGLOGSESSION $OGLOGFILE
202#___________________________________________________________________
203#
204# Retorno
205#___________________________________________________________________
206
207        kill $COPROC_PID
208
209        exit 0
Note: See TracBrowser for help on using the repository browser.