source: client/shared/scripts/ogRestaurarImagenBasica @ 9d6c54a

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since 9d6c54a was 2612fcb, checked in by alonso <alonso@…>, 12 years ago

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

  • Property mode set to 100755
File size: 6.7 KB
RevLine 
[d843835]1#!/bin/bash
2#___________________________________________________________________
3#
4#  RESTAURAR IMAGEN BÁSICA
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 (Si es 0.0.0.0 es caché)
[2612fcb]13# $5 Tipo de transmisión 0=Unicast 1=Multicast
14# $6 Es una cadena "nnn" tipo flags que codifica varios parametros.
15#               Tiene el formato "nnn" donde "n" vale 0 ó 1.   
16#               1XX: Gestionar fichero completo en lugar de diferencas
17#               X1X: Eliminar archivos de la partición que no estén en la imagen
18#               XX1: Comprimir archivos para enviarlos por la red
19#               El valor X indica que no importa el valor que tenga el dato
20# $7 Es una cadena "nnnn" tipo flags que codifica varios parametros.
[d843835]21#               Tiene el formato "nnnn" donde "n" vale 0 ó 1.   
22#               1XXX: Borrar la particion de destino antes de restaurar la imagen basica
23#               X1XX: Copiar Imagen básica también a la cache
24#               XX1X: Borrar previamente la imagen basica de la cache antes de copiarla
25#               XXX1: No borrar archivos en destino
26#               El valor X indica que no importa el valor que tenga el dato
[2612fcb]27# $8 Método de clonación 0=Desde caché 1=Desde repositorio
28# $9 Ruta de origen de la Imagen (Carpeta)
[d843835]29#___________________________________________________________________
30#
31# Control parámetros
32#___________________________________________________________________
33
34        PROG="$(basename $0)"
[2612fcb]35        if [ $# -lt 8 ]; then
[d843835]36                usage=" ndisco nparticion nombre_imagen_basica ip_repositorio copiar_a_caché "
37                usage="$usage Borrar_cache_previamente metodo_clonación Ruta_origen"
38                ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage"
39                exit $?
40        fi
41       
42        DISCO=$1
43        NPART=$2
44        NOMBREIMG=$3
45        IPREPOSITORIO=$4
46       
[2612fcb]47        TIPOTRAN=$5
48
49        flag=$6
50        echo "flah:$flag">/tmp/log
51        WHLFILE=${flag:0:1}
52        RMVFILE=${flag:1:1}
53        CMPFILE=${flag:2:1}
54
55        flag=$7
[d843835]56        echo "flah:$flag">/tmp/log
57        BORRARIMG=${flag:0:1}
58        COPIACACHE=${flag:1:1}
59        BORRACACHE=${flag:2:1}
60        NOBORRACHIVOS=${flag:3:1}
61       
[2612fcb]62        METCLONA=$8
63        RUTAORIGEN=$9
[d843835]64#___________________________________________________________________
65#
66# Variables y configuración logs
67#___________________________________________________________________
68       
69        source /opt/opengnsys/scripts/ImagenesSincronizadas.lib
70#___________________________________________________________________
71#
[97ee589]72# Activa navegador para ver progreso
73#___________________________________________________________________
74
75        coproc /opt/opengnsys/bin/browser -qws http://localhost/cgi-bin/httpd-log.sh
76
77#___________________________________________________________________
78#
[d843835]79# Proceso
80#___________________________________________________________________
[97ee589]81 
[e205863]82        # Llamada a la función de sincronización.
[d843835]83        echo "Restauracion de imagen basica..." | 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
[97ee589]95                                kill $COPROC_PID
96                          exit $OG_ERR_PARTITION
[d843835]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 entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
109                        restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1
[349b238]110
111                        RETVAL=$?
112                        if [ $RETVAL -ne 0 ]; then
[97ee589]113                                echo "***Error:$RETVAL. restaurando imagen basica desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
114                                kill $COPROC_PID
115                                exit $OG_ERR_IMAGE
[349b238]116                        fi     
[d843835]117                        restauraListaAcl $ORIGEN $DESTINO $SISTEMAFICHERO $DISCO $NPART
[349b238]118               
[d843835]119                        RETVAL=$?
[349b238]120                        if [ $RETVAL -ne 0 ]; then
[97ee589]121                                echo "***Error:$RETVAL. restaurando listas ACL desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
122                                kill $COPROC_PID
123                                exit $OG_ERR_IMAGE
[349b238]124                        fi
[8e2e266]125                        echo "!!! Finaliza correctamente !!! la restauracion de imagen basica $NOMBREIMG desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
[97ee589]126                        kill $COPROC_PID
[349b238]127                        exit 0 
[d843835]128                fi             
129        fi     
130       
[349b238]131        if [ $METCLONA = 0 ]; then
132                # Restauración desde la caché
133                echo "Restaurando desde la cache" | tee -a $OGLOGSESSION $OGLOGFILE
134        fi     
[d843835]135        # Comprobar si existe caché
136        CACHE=$(montaCache)
137        if [ -z $CACHE ]; then
[349b238]138                echo "No se puede restaurar la imagen desde la cache ya que no existe" | tee -a $OGLOGSESSION $OGLOGFILE
[97ee589]139                                kill $COPROC_PID
[d843835]140        ogRaiseError $OG_ERR_NOTCACHE "CACHE"
[97ee589]141        exit $OG_ERR_NOTCACHE
[d843835]142        fi                     
143
144        # Borrar imagen de la caché
145        if [ $BORRACACHE -eq 1 ]; then
146                echo "Borrando imagen $NOMBREIMG de la cache" | tee -a $OGLOGSESSION $OGLOGFILE
[349b238]147          rm -R $CACHE$OGIMG/$NOMBREIMG
[d843835]148        fi
149       
150        # Actualización de la caché
151        echo "Actualizando cache local desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
152        ORIGEN="$REPOSITORIO/$NOMBREIMG/"
153        DESTINO="$CACHE$OGIMG/$NOMBREIMG/"
154        echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
155        restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1     
156
157        RETVAL=$?       
158        if [ $RETVAL -ne 0 ]; then
[349b238]159                echo "***Error:$RETVAL. Actualizando cache local desde repositorio $IPREPOSITORIO" | tee -a $OGLOGSESSION $OGLOGFILE
[97ee589]160                kill $COPROC_PID
[349b238]161                exit $OG_ERR_IMAGE
[d843835]162        fi                     
163       
164        # Restauración desde caché a la partición
165        echo "Copiando imagen a la particion desde cache local" | tee -a $OGLOGSESSION $OGLOGFILE
166                       
167        ORIGEN="$CACHE$OGIMG/$NOMBREIMG/"
168        DESTINO="$PARTICION$RUTAORIGEN/"       
169        echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
170        restaurarImagen $ORIGEN $DESTINO $SISTEMAFICHERO 2     
[349b238]171
172        RETVAL=$?
173        if [ $RETVAL -ne 0 ]; then
174                echo "***Error:$RETVAL. restaurando imagen basica desde cache local" | tee -a $OGLOGSESSION $OGLOGFILE
[97ee589]175                kill $COPROC_PID
[349b238]176                exit $OG_ERR_IMAGE
177        fi     
178
[d843835]179        restauraListaAcl $ORIGEN $DESTINO $SISTEMAFICHERO $DISCO $NPART
180        RETVAL=$?       
181        if [ $RETVAL -ne 0 ]; then
[349b238]182                echo "***Error:$RETVAL. restaurando listas ACL desde cache local" | tee -a $OGLOGSESSION $OGLOGFILE
[97ee589]183                kill $COPROC_PID
[349b238]184                exit $OG_ERR_IMAGE
[d843835]185        fi     
[2612fcb]186
187        echo "Ejecutando configure OS" | tee -a $OGLOGSESSION $OGLOGFILE       
188        configureOs     $DISCO $NPART
189
190  echo "!!! Finaliza correctamente !!! restauracion imagen basica $NOMBREIMG desde cache local" | tee -a $OGLOGSESSION $OGLOGFILE
[d843835]191#___________________________________________________________________
192#
193# Retorno
194#___________________________________________________________________
[2612fcb]195       
[97ee589]196        kill $COPROC_PID
[8e2e266]197
[d843835]198        exit 0
Note: See TracBrowser for help on using the repository browser.