source: client/shared/scripts/ogCrearSoftIncremental @ 380fe92

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 380fe92 was 8e2e266, checked in by alonso <alonso@…>, 12 years ago

Modificaciones para optimazación de la sincronización

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

  • Property mode set to 100755
File size: 4.8 KB
Line 
1#!/bin/bash
2#___________________________________________________________________
3#
4#  CREAR 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 de la imagen incremental (sin extensión)
14# $6 Es una cadena "nnnn" tipo flags que codifica varios parametros.
15#               Tiene el formato "nnnn" donde "n" vale 0 ó 1.   
16#               1XXX: Borrar la imagen incremental del repositorio antes de crearla
17#               X1XX: Copiar imagen incremental también a la cache
18#               XX1X: Borrar previamente la imagen incremental de la cache antes de copiarla
19#               XXX1: No borrar archivos en destino
20#               El valor X indica que no importa el valor que tenga el dato
21# $7 Ruta de origen de la Imagen (Carpeta)
22
23#___________________________________________________________________
24#
25# Control parámetros
26#___________________________________________________________________
27
28        PROG="$(basename $0)"
29        if [ $# -lt 6 ]; then
30                usage=" ndisco nparticion nombre_imagen_basica ip_repositorio nombre_imagen_incremental"
31                usage="$usage copiar_a_caché Borrar_cache_previamente Ruta_origen"
32                ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage"
33                exit $?
34        fi
35       
36        DISCO=$1
37        NPART=$2
38        NOMBREIMG=$3
39        IPREPOSITORIO=$4
40        NOMBREIMGINC=$5
41       
42        flag=$6
43        echo "flah:$flag">/tmp/log
44        BORRARIMG=${flag:0:1}
45        COPIACACHE=${flag:1:1}
46        BORRACACHE=${flag:2:1}
47        NOBORRACHIVOS=${flag:3:1}
48       
49        RUTAORIGEN=$7
50#___________________________________________________________________
51#
52# Variables y configuración logs
53#___________________________________________________________________
54       
55        source /opt/opengnsys/scripts/ImagenesSincronizadas.lib
56#___________________________________________________________________
57#
58# Activa navegador para ver progreso
59#___________________________________________________________________
60
61        coproc /opt/opengnsys/bin/browser -qws http://localhost/cgi-bin/httpd-log.sh   
62#___________________________________________________________________
63#
64# Lista de archivos a sincronizar
65#___________________________________________________________________
66       
67        TMPFILELIST="/tmp/_listatmp_"
68        FILELIST="/tmp/_lista_"
69#___________________________________________________________________
70#
71# Proceso
72#___________________________________________________________________
73
74        echo "Creacion de imagen incremental..." | tee -a $OGLOGSESSION $OGLOGFILE
75       
76        ORIGEN=$PARTICION$RUTAORIGEN/   
77        DESTINO="$REPOSITORIO/$NOMBREIMG/"
78       
79        # Borrado previo de imagen en repositorio
80        if [ $BORRARIMG -eq 1 ]; then
81           echo "Borrando previamente imagen del $NOMBREIMGINC repositorio" | tee -a $OGLOGSESSION $OGLOGFILE
82        fi
83               
84        # Creación de la lista de archivos entre partición e imagen básica del repositorio
85        echo "Creacion de la lista de archivos a transferir entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
86        crearListaAcl $ORIGEN $DESTINO $SISTEMAFICHERO $DISCO $NPART   
87        crearImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1 1 $TMPFILELIST   
88        RETVAL=$?       
89        if [ $RETVAL -ne 0 ]; then
90                 kill $COPROC_PID
91           exit $OG_ERR_IMAGE
92        fi     
93       
94        # Editar la lista y depurarla
95        editarLista $TMPFILELIST $FILELIST
96       
97        # Creación de la imagen incremental en el repositorio
98        DESTINO="$REPOSITORIO/$NOMBREIMGINC/"
99        echo "Sincronizacion para crear imagen incremental entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
100        crearImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1 2 $FILELIST     
101        RETVAL=$?       
102        if [ $RETVAL -ne 0 && [$RETVAL -ne 23]; then
103                 kill $COPROC_PID
104           exit $OG_ERR_IMAGE
105        fi     
106        echo "!!! Finaliza correctamente !!! la creacion de imagen incremental NOMBREIMGINC entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
107
108        # Copia opcional a la caché
109        if [ $COPIACACHE -eq 1 ]; then
110                echo "Copiando imagen a cache" | tee -a $OGLOGSESSION $OGLOGFILE
111                CACHE=$(montaCache)
112                if [ -z $CACHE ]; then
113                        echo "No se ha podido copiar la imagen a la cache" | tee -a $OGLOGSESSION $OGLOGFILE
114                        kill $COPROC_PID
115      exit $OG_ERR_NOTCACHE
116                fi             
117
118                # Borrar imagen de la caché
119                if [ $BORRACACHE -eq 1 ]; then
120                        echo "Borrando imagen $NOMBREIMGINC de la cache" | tee -a $OGLOGSESSION $OGLOGFILE
121                  rm -R $CACHE$OGIMG/$NOMBREIMGINC
122                fi     
123
124                DESTINO="$CACHE$OGIMG/$NOMBREIMGINC/"
125                echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE
126                crearImagen $ORIGEN $DESTINO $SISTEMAFICHERO 2 2 $FILELIST     
127                RETVAL=$?       
128                if [ $RETVAL -ne 0 ]; then
129                         kill $COPROC_PID
130                   exit $OG_ERR_IMAGE
131                fi     
132                echo "!!! Finaliza correctamente !!! la copia de imagen incremental $NOMBREIMGINC a la cache" | tee -a $OGLOGSESSION $OGLOGFILE
133  fi   
134
135        eliminaListaAcl $ORIGEN $SISTEMAFICHERO
136#___________________________________________________________________
137#
138# Retorno
139#___________________________________________________________________
140
141        kill $COPROC_PID
142        exit 0
143       
Note: See TracBrowser for help on using the repository browser.