diff options
author | ramon <ramongomez@us.es> | 2013-01-29 12:13:09 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2013-01-29 12:13:09 +0000 |
commit | d843835d77f48ec87e367951e343ebdfcc662ba9 (patch) | |
tree | 28d3a1a8859591b950e6c9f37c382e47c78e3d51 /client/shared/scripts/ogCrearSoftIncremental | |
parent | f243a47352b8651ca2ec6dec70a546bbdbb2495f (diff) |
#565, Alonso: Scripts de creación y restauración de imágenes diferenciales.
git-svn-id: https://opengnsys.es/svn/branches/version1.0@3505 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client/shared/scripts/ogCrearSoftIncremental')
-rwxr-xr-x | client/shared/scripts/ogCrearSoftIncremental | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/client/shared/scripts/ogCrearSoftIncremental b/client/shared/scripts/ogCrearSoftIncremental new file mode 100755 index 00000000..b3dd01b6 --- /dev/null +++ b/client/shared/scripts/ogCrearSoftIncremental @@ -0,0 +1,131 @@ +#!/bin/bash +#___________________________________________________________________ +# +# CREAR IMAGEN INCREMENTAL +#___________________________________________________________________ +# +# Parámetros recibidos desde el cliente: +# +# $1 Número de disco +# $2 Número de particion +# $3 Nombre canónico de la imagen básica (sin extensión) +# $4 Dirección del repositorio +# $5 Nombre canónico de la imagen incremental (sin extensión) +# $6 Es una cadena "nnnn" tipo flags que codifica varios parametros. +# Tiene el formato "nnnn" donde "n" vale 0 ó 1. +# 1XXX: Borrar la imagen incremental del repositorio antes de crearla +# X1XX: Copiar imagen incremental también a la cache +# XX1X: Borrar previamente la imagen incremental de la cache antes de copiarla +# XXX1: No borrar archivos en destino +# El valor X indica que no importa el valor que tenga el dato +# $7 Ruta de origen de la Imagen (Carpeta) + +#___________________________________________________________________ +# +# Control parámetros +#___________________________________________________________________ + + PROG="$(basename $0)" + if [ $# -lt 6 ]; then + usage=" ndisco nparticion nombre_imagen_basica ip_repositorio nombre_imagen_incremental" + usage="$usage copiar_a_caché Borrar_cache_previamente Ruta_origen" + ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage" + exit $? + fi + + DISCO=$1 + NPART=$2 + NOMBREIMG=$3 + IPREPOSITORIO=$4 + NOMBREIMGINC=$5 + + flag=$6 + echo "flah:$flag">/tmp/log + BORRARIMG=${flag:0:1} + COPIACACHE=${flag:1:1} + BORRACACHE=${flag:2:1} + NOBORRACHIVOS=${flag:3:1} + + RUTAORIGEN=$7 +#___________________________________________________________________ +# +# Variables y configuración logs +#___________________________________________________________________ + + source /opt/opengnsys/scripts/ImagenesSincronizadas.lib + +#___________________________________________________________________ +# +# Lista de archivos a sincronizar +#___________________________________________________________________ + + TMPFILELIST="/tmp/_listatmp_" + FILELIST="/tmp/_lista_" +#___________________________________________________________________ +# +# Proceso +#___________________________________________________________________ + + echo "Creacion de imagen incremental..." | tee -a $OGLOGSESSION $OGLOGFILE + + ORIGEN=$PARTICION$RUTAORIGEN/ + DESTINO="$REPOSITORIO/$NOMBREIMG/" + + # Borrado previo de imagen en repositorio + if [ $BORRARIMG -eq 1 ]; then + echo "Borrando previamente imagen del $NOMBREIMGINC repositorio" | tee -a $OGLOGSESSION $OGLOGFILE + fi + + # Creación de la lista de archivos entre partición e imagen básica del repositorio + echo "Creacion de la lista de archivos a transferir entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE + crearListaAcl $ORIGEN $DESTINO $SISTEMAFICHERO $DISCO $NPART + crearImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1 1 $TMPFILELIST + RETVAL=$? + if [ $RETVAL -ne 0 ]; then + exit $OG_ERR_IMAGE + fi + + # Editar la lista y depurarla + editarLista $TMPFILELIST $FILELIST + + # Creación de la imagen incremental en el repositorio + DESTINO="$REPOSITORIO/$NOMBREIMGINC/" + echo "Sincronizacion para crear imagen incremental entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE + crearImagen $ORIGEN $DESTINO $SISTEMAFICHERO 1 2 $FILELIST + RETVAL=$? + if [ $RETVAL -ne 0 ]; then + exit $OG_ERR_IMAGE + fi + + # Copia opcional a la caché + if [ $COPIACACHE -eq 1 ]; then + echo "Copiando imagen a cache" | tee -a $OGLOGSESSION $OGLOGFILE + CACHE=$(montaCache) + if [ -z $CACHE ]; then + echo "No se ha podido copiar la imagen a la cache" | tee -a $OGLOGSESSION $OGLOGFILE + exit 0 + fi + + # Borrar imagen de la caché + if [ $BORRACACHE -eq 1 ]; then + echo "Borrando imagen $NOMBREIMGINC de la cache" | tee -a $OGLOGSESSION $OGLOGFILE + rm -R $CACHE$OGIMG/$NOMBREIMGINC + fi + + DESTINO="$CACHE$OGIMG/$NOMBREIMGINC/" + echo "Sincronizando imagen entre $ORIGEN y $DESTINO" | tee -a $OGLOGSESSION $OGLOGFILE + crearImagen $ORIGEN $DESTINO $SISTEMAFICHERO 2 2 $FILELIST + RETVAL=$? + if [ $RETVAL -ne 0 ]; then + exit $OG_ERR_IMAGE + fi + fi + + eliminaListaAcl $ORIGEN $SISTEMAFICHERO +#___________________________________________________________________ +# +# Retorno +#___________________________________________________________________ + + exit 0 + |