#!/bin/bash #___________________________________________________________________ # # RESTAURAR 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 del software incremental (sin extensión) # $5 Es una cadena "nnnn" tipo flags que codifica varios parametros. # Tiene el formato "nnnn" donde "n" vale 0 ó 1. # 1XXX: Borrar la particion de destino antes de restaurar la imagen incremental # 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 Método de clonación 0=Desde caché 1=Desde repositorio # $8 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 copiar_a_caché " usage="$usage Borrar_cache_previamente metodo_clonación Ruta_origen" ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $PROG $usage" exit $? fi # Llamada a la función de sincronización. coproc /opt/opengnsys/bin/browser -qws http://localhost/cgi-bin/httpd-log.sh ogRestaurarSoftIncremental "$@" kill $COPROC_PID exit # Versión 2 # Para probar la versión 2 comentar las dos líneas anteriores # Trasferencias comprimidas #export ogcompress="true" DIFFEXT=".diff" [ $7 -eq 0 ] && ORIG="CACHE" || ORIG="REPO" flag=$5 echo "flah:$flag">/tmp/log DELIMG=${flag:0:1} # No se puede borra la imagen despues de restaurar la compreta COPYCACHE=${flag:1:1} DELCACHE=${flag:2:1} NODELETEFILE=${flag:3:1} # No tiene sentido en las diferenciales echo -n "" &>$OGLOGSESSION if [ $COPYCACHE -eq 1 ]; then ORIG="CACHE" fi if [ $DELCACHE -eq 1 ]; then echo "Borramos imagen de la cache" &>>$OGLOGSESSION CACHEFILE=$(ogGetPath "CACHE" "$5$DIFFEXT") && rm -rf $CACHEFILE fi restoreDiffImage "$ORIG" "$5" "$1" "$2" &>>$OGLOGSESSION