summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xadmin/Sources/Services/ogAdmRepoAux30
-rwxr-xr-xclient/engine/Rsync.lib78
-rwxr-xr-xclient/engine/System.lib1
-rw-r--r--client/shared/etc/lang.ca_ES.conf3
-rw-r--r--client/shared/etc/lang.en_GB.conf3
-rw-r--r--client/shared/etc/lang.es_ES.conf3
-rwxr-xr-xclient/shared/etc/preinit/loadenviron.sh1
-rwxr-xr-xclient/shared/scripts/createBaseImage55
-rwxr-xr-xclient/shared/scripts/createDiffImage33
9 files changed, 172 insertions, 35 deletions
diff --git a/admin/Sources/Services/ogAdmRepoAux b/admin/Sources/Services/ogAdmRepoAux
index d898036e..b26773a6 100755
--- a/admin/Sources/Services/ogAdmRepoAux
+++ b/admin/Sources/Services/ogAdmRepoAux
@@ -92,7 +92,6 @@ case "$PARM1" in
# Redimensionamos la imagen al tamaño necesario
# TODO modificar ogGetImageSize
IMGSIZE=$(ls -lk $IMGFILE| cut -f5 -d" ")
- echolog "$IMGSIZE"
if [ $IMGSIZE -lt $SIZEREQUIRED ];then
echolog "truncate --size=\">$SIZEREQUIRED\"k $IMGFILE"
truncate --size=">$SIZEREQUIRED"k $IMGFILE 2>&1 > $REPOLOG
@@ -156,6 +155,35 @@ case "$PARM1" in
umount $MOUNTDIR
;;
+ REDUCE_IMAGE)
+ # Reduce el archivo de la imagen a tamaño datos + 500M
+ #1 REDUCE_IMAGE
+ #2 Nombre Imagen
+ #3 Extensión [ img |diff ]
+ IMGEXT="$PARM3"
+ IMGFILE="$REPODIR$PARM2.$IMGEXT"
+ [ ! -f $IMGFILE ] && echolog "Imagen no existe" && exit 1
+ MOUNTDIR="$REPODIR""mount/${PARM2}"
+ [ "$IMGEXT" == "diff" ] && MOUNTDIR="$MOUNTDIR.$IMGEXT"
+
+ mount -o compress=lzo "$IMGFILE" "$MOUNTDIR"
+ AVAILABLE=$(df -k|grep $MOUNTDIR|awk '{print $4}')
+
+ # Si el espacio libre menor que 500Mb desmontamos la imagen y nos salimos
+ if [ $AVAILABLE -lt 500000 ]; then
+ umount $MOUNTDIR
+ exit 0
+ fi
+
+ USED=$(df -k|grep $MOUNTDIR|awk '{print $3}')
+ let ENDSIZE=USED+500000
+ echolog "reducir imagen REPO $PARM2 $IMGEXT, tamaño final: $ENDSIZE"
+ echolog btrfs filesystem resize "$ENDSIZE"k $MOUNTDIR
+ btrfs filesystem resize "$ENDSIZE"k $MOUNTDIR
+ umount $MOUNTDIR
+ echolog "truncate --size=\"$ENDSIZE\"k $IMGFILE"
+ truncate --size="$ENDSIZE"k $IMGFILE
+ ;;
default)
echolog "Solicitud con parametros \"$PARM\" no realizada, no registrada o con errores"
;;
diff --git a/client/engine/Rsync.lib b/client/engine/Rsync.lib
index 407ca93e..fce4ac7e 100755
--- a/client/engine/Rsync.lib
+++ b/client/engine/Rsync.lib
@@ -42,6 +42,13 @@ if [ "$1" == "CACHE" -o "$1" == "cache" ]; then
LOOPDEVICE=$(losetup -f)
# Si existe el fichero de la imagen se hace copia de seguridad, si no existe se crea.
if [ -f "$IMGFILE" ]; then
+ # Si la imagen esta montada la desmonto
+ if [ -r "$DIRMOUNT/ogimg.info" ]; then
+ echolog "umount $DIRMOUNT"
+ umount "$DIRMOUNT"
+ [ $? -ne 0 ] && return $(ogRaiseError $OG_ERR_DONTUNMOUNT_IMAGE "$1 $2.$3"; echo $?)
+ fi
+
if [ "$BACKUP" == "true" ]; then
# Copia seguridad
echo " $MSG_SCRIPTS_FILE_RENAME \"$IMGFILE\" -> \"$IMGFILE.ant\"." | tee -a $OGLOGSESSION $OGLOGFILE
@@ -431,21 +438,24 @@ fi
DIRMOUNT=$(ogGetMountDir "$2" $IMGEXT)
if [ "$1" == "CACHE" -o "$1" == "cache" ]; then
- IMGFILE=$(ogGetPath "$1" /"$2.$IMGEXT")
- mkdir -p "/tmp/$DIRMOUNT"
+ IMGFILE=$(ogGetPath "$1" /"$2.$IMGEXT")
+ mkdir -p "/tmp/$DIRMOUNT"
mount -o compress=lzo "$IMGFILE" "/tmp/$DIRMOUNT" 1>/dev/null
echo "/tmp/$DIRMOUNT"
else
- [ -z $REPOIP ] && REPOIP=$(ogGetRepoIp)
+ [ -z $REPOIP ] && REPOIP=$(ogGetRepoIp)
hose $REPOIP 2009 --out sh -c "echo -ne MOUNT_IMAGE \"$2\" $IMGEXT"
- echo "$OGIMG/$DIRMOUNT"
+ echo "$OGIMG/$DIRMOUNT"
fi
}
+
+
+
function ogUnmountImage () {
#/**
# ogUnmountImage [ REPO | CACHE ] Image_name [ extension ]
@@ -563,3 +573,63 @@ done
echo ""
}
+
+function ogReduceImage () {
+#/**
+# ogReduceImage
+#@brief Reduce el archivo de la imagen a tamaño datos + 500M
+#@param 1 Repositorio [ REPO | CACHE ]
+#@param 2 Nombre Imagen
+#@param 3 Extensión [ img |diff ]
+#@return
+#@exception OG_ERR_FORMAT # 1 formato incorrecto.
+#@exception OG_ERR_NOTFOUND # 2 Fichero o dispositivo no encontrado.
+#*/
+local IMGEXT DIRMOUNT AVAILABLE USED IMGDIR IMGFILE ENDSIZE
+if [ "$*" == "help" ]; then
+ ogHelp "$FUNCNAME" "$FUNCNAME [ REPO|CACHE ] image_name [ extension ]" \
+ "$FUNCNAME REPO Ubuntu12" \
+ "$FUNCNAME CACHE Windows7 diff"
+ return
+fi
+
+if [ $# -lt 2 ]; then
+ ogRaiseError $OG_ERR_FORMAT "$MSG_FORMAT: $FUNCNAME [ REPO|CACHE ] image_name [ extension ]"
+ return $?
+fi
+
+[ "$3" == "" ] && IMGEXT="img" || IMGEXT="$3"
+
+if [ "$1" == "CACHE" -o "$1" == "cache" ]; then
+ # Al montar se comprueba la existencia de la imagen
+ DIRMOUNT=$(ogMountImage $1 $2 $IMGEXT)
+
+ AVAILABLE=$(df -k|grep $DIRMOUNT|awk '{print $4}')
+ # Si el espacio libre menor que 500Mb nos salimos
+ [ $AVAILABLE -lt 500000 ] && return 0
+
+ # Reducimos el archivo de imagen:
+ IMGDIR=$(ogGetParentPath "$1" "/$2")
+ IMGFILE=${IMGDIR}/$(basename "/$2").$IMGEXT
+ USED=$(df -k|grep $DIRMOUNT|awk '{print $3}')
+ let ENDSIZE=USED+500000
+ echo -e -n " btrfs filesystem resize "$ENDSIZE"k $DIRMOUNT \n "
+ btrfs filesystem resize "$ENDSIZE"k $DIRMOUNT
+ ogUnmountImage $1 $2 $IMGEXT
+ echo " truncate --size=\"$ENDSIZE\"k $IMGFILE "
+ truncate --size="$ENDSIZE"k $IMGFILE
+else
+ echo " hose $REPOIP 2009 --out sh -c echo -ne REDUCE_IMAGE \"$2\" $IMGEXT"
+ hose $REPOIP 2009 --out sh -c "echo -ne REDUCE_IMAGE \"$2\" $IMGEXT"
+fi
+
+
+}
+
+
+
+
+
+
+
+
diff --git a/client/engine/System.lib b/client/engine/System.lib
index def3bb62..bf26e66b 100755
--- a/client/engine/System.lib
+++ b/client/engine/System.lib
@@ -95,6 +95,7 @@ case "$CODE" in
$OG_ERR_MCASTRECEIVERPARTITION) MSG="$MSG_ERR_MCASTRECEIVERPARTITION \"$2\"" ;;
$OG_ERR_PROTOCOLJOINMASTER) MSG="$MSG_ERR_PROTOCOLJOINMASTER \"$2\"" ;;
$OG_ERR_DONTMOUNT_IMAGE) MSG="$MSG_ERR_DONTMOUNT_IMAGE \"$2\"" ;;
+ $OG_ERR_DONTUNMOUNT_IMAGE) MSG="$MSG_ERR_DONTUNMOUNT_IMAGE \"$2\"" ;;
$OG_ERR_DONTSYNC_IMAGE) MSG="$MSG_ERR_DONTSYNC_IMAGE \"$2\"" ;;
*) MSG="$MSG_ERR_GENERIC"; CODE=$OG_ERR_GENERIC ;;
esac
diff --git a/client/shared/etc/lang.ca_ES.conf b/client/shared/etc/lang.ca_ES.conf
index 04cbab10..4c5ae882 100644
--- a/client/shared/etc/lang.ca_ES.conf
+++ b/client/shared/etc/lang.ca_ES.conf
@@ -32,6 +32,7 @@ MSG_ERR_MCASTRECEIVERPARTITION="Error en la recepcion MULTICAST de un fichero"
MSG_ERR_PROTOCOLJOINMASTER="Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER"
MSG_ERR_DONTMOUNT_IMAGE="Error al montar la imagen"
MSG_ERR_DONTSYNC_IMAGE="Imagen no sincronizable"
+MSG_ERR_DONTUNMOUNT_IMAGE="Error al desmontar la imagen"
# Mensajes de avisos.
@@ -163,8 +164,10 @@ MSG_HELP_ogMount="Monta un sistema de archivos y devuelve el punto de montaje."
MSG_HELP_ogMountCache="Monta el sistema de archivos dedicado a caché local."
MSG_HELP_ogMountCdrom=""
MSG_HELP_ogMountFs=$MSG_HELP_ogMount
+MSG_HELP_ogMountImage="Monta una imagen sincronizable"
MSG_HELP_ogRaiseError="Muestra y registra mensajes de error y devuelve el código correspondiente."
MSG_HELP_ogReduceFs="Reduce el tamaño del sistema de archivos al mínimo ocupado por sus datos."
+MSG_HELP_ogReduceImage="Reduce el tamaño de la imagen"
MSG_HELP_ogRestoreImage="Restaura una imagen de sistema operativo."
MSG_HELP_ogRestoreInfoImage="Restablece informacion del sistema: acl y enlaces simbolicos"
MSG_HELP_ogRestoreMbrImage="Restaura una imagen del sector de arranque (MBR)."
diff --git a/client/shared/etc/lang.en_GB.conf b/client/shared/etc/lang.en_GB.conf
index 8cdd5f29..25270e45 100644
--- a/client/shared/etc/lang.en_GB.conf
+++ b/client/shared/etc/lang.en_GB.conf
@@ -31,6 +31,7 @@ MSG_ERR_MCASTRECEIVERPARTITION="Error en la recepcion MULTICAST de un fichero"
MSG_ERR_PROTOCOLJOINMASTER="Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER"
MSG_ERR_DONTMOUNT_IMAGE="Error al montar la imagen"
MSG_ERR_DONTSYNC_IMAGE="Imagen no sincronizable"
+MSG_ERR_DONTUNMOUNT_IMAGE="Error al desmontar la imagen"
# Warning messages.
@@ -151,8 +152,10 @@ MSG_HELP_ogMount="Mount a filesystem and display its mount point."
MSG_HELP_ogMountCache="Mount the cache filesystem."
MSG_HELP_ogMountCdrom=""
MSG_HELP_ogMountFs=$MSG_HELP_ogMount
+MSG_HELP_ogMountImage="Monta una imagen sincronizable"
MSG_HELP_ogRaiseError="Muestra y registra mensajes de error y devuelve el código correspondiente."
MSG_HELP_ogReduceFs="Reduce el tamaño del sistema de archivos al mínimo ocupado por sus datos."
+MSG_HELP_ogReduceImage="Reduce el tamaño de la imagen"
MSG_HELP_ogRestoreImage="Restore a filesystem image."
MSG_HELP_ogRestoreInfoImage="Restablece informacion del sistema: acl y enlaces simbolicos"
MSG_HELP_ogRestoreMbrImage="Restore the boot sector image (MBR)."
diff --git a/client/shared/etc/lang.es_ES.conf b/client/shared/etc/lang.es_ES.conf
index 1c7f9864..74098143 100644
--- a/client/shared/etc/lang.es_ES.conf
+++ b/client/shared/etc/lang.es_ES.conf
@@ -31,6 +31,7 @@ MSG_ERR_MCASTSENDPARTITION="Error en envio MULTICAST de una particion"
MSG_ERR_MCASTRECEIVERPARTITION="Error en la recepcion MULTICAST de un fichero"
MSG_ERR_PROTOCOLJOINMASTER="Error en la conexion de una sesion UNICAST|MULTICAST con el MASTER"
MSG_ERR_DONTMOUNT_IMAGE="Error al montar la imagen"
+MSG_ERR_DONTUNMOUNT_IMAGE="Error al desmontar la imagen"
MSG_ERR_DONTSYNC_IMAGE="Imagen no sincronizable"
# Mensajes de avisos.
@@ -162,8 +163,10 @@ MSG_HELP_ogMount="Monta un sistema de archivos y devuelve el punto de montaje."
MSG_HELP_ogMountCache="Monta el sistema de archivos dedicado a caché local."
MSG_HELP_ogMountCdrom=""
MSG_HELP_ogMountFs=$MSG_HELP_ogMount
+MSG_HELP_ogMountImage="Monta una imagen sincronizable"
MSG_HELP_ogRaiseError="Muestra y registra mensajes de error y devuelve el código correspondiente."
MSG_HELP_ogReduceFs="Reduce el tamaño del sistema de archivos al mínimo ocupado por sus datos."
+MSG_HELP_ogReduceImage="Reduce el tamaño de la imagen"
MSG_HELP_ogRestoreImage="Restaura una imagen de sistema operativo."
MSG_HELP_ogRestoreInfoImage="Restablece informacion del sistema: acl y enlaces simbolicos"
MSG_HELP_ogRestoreMbrImage="Restaura una imagen del sector de arranque (MBR)."
diff --git a/client/shared/etc/preinit/loadenviron.sh b/client/shared/etc/preinit/loadenviron.sh
index 133bd593..bbcbb20d 100755
--- a/client/shared/etc/preinit/loadenviron.sh
+++ b/client/shared/etc/preinit/loadenviron.sh
@@ -119,3 +119,4 @@ export OG_ERR_PROTOCOLJOINMASTER=60 # Error en la conexion de una sesion UNICAS
export OG_ERR_DONTMOUNT_IMAGE=70 # Error al montar una imagen sincronizada.
export OG_ERR_DONTSYNC_IMAGE=71 # Imagen no sincronizable (es monolitica)
+export OG_ERR_DONTUNMOUNT_IMAGE=72 # Error al desmontar la imagen
diff --git a/client/shared/scripts/createBaseImage b/client/shared/scripts/createBaseImage
index dfaa19c1..5d034567 100755
--- a/client/shared/scripts/createBaseImage
+++ b/client/shared/scripts/createBaseImage
@@ -26,6 +26,10 @@
trap "onexit $1 $2 $3 \"$4\"" 1 2 3 6 9 14 15 ERR
+# Establecemos factor de compresion
+COMPRESS=90/100
+COMPRESSLINUX=70/100
+
# Si salimos con error demontamos la imagen y desbloqueamos la imagen y la particion
function onexit() {
local exit_status=$?
@@ -42,11 +46,10 @@ TIME1=$SECONDS
#Carga el configurador del engine desde el fichero engine.cfg
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
-# Opciones rsync
+# Factor de calculo de Time out al crear imagen: valor por defecto en engine.cfg
CREATESPEED=${CREATESPEED:-"100000*4"}
PROG="$(basename $0)"
-echo $PROG
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
ogHelp "$PROG: $MSG_HELP_createBaseImage" \
@@ -79,27 +82,35 @@ echo " " > $OGLOGCOMMAND
# Obtener información de los parámetros de entrada.
PART=$(ogDiskToDev "$1" "$2" 2>/dev/null) || ogRaiseError $OG_ERR_PARTITION "$1 $2"
+# Comprobamos que la particion se puede montar
+ORIG=$(ogMount $1 $2) || ogRaiseError $OG_ERR_PARTITION "$1 $2"
#Comprobamos acceso de escritura.
DIRTEMP=$(date +%Y%m%d-%H%M%S)
ogMakeDir $3 /$4$DIRTEMP 2>/dev/null || ogRaiseError $OG_ERR_NOTWRITE "$3" && ogDeleteTree $3 /$4$DIRTEMP
+# Borramos ficheros de paginacion y configuracion
+case "$(ogGetFsType $1 $2)" in
+ EXT[234])
+ ogCleanLinuxDevices $1 $2
+ rm -rf $ORIG/tmp/*
+ COMPRESS=$COMPRESSLINUX
+ ;;
+ NTFS)
+ ogDeleteFile $1 $2 pagefile.sys || echo "$?"
+ ogDeleteFile $1 $2 hiberfil.sys || echo "$?"
+ ;;
+esac
+
#Comprobar espacio que requerira la imagen para ser almacenada
-echo " " > $OGLOGCOMMAND
-if ogMount $1 $2 &>/dev/null
-then
- SIZEDATA=$(df -k | grep $PART | awk '{print $3}')
- #Aplicar factor de compresion
- FACTORSYNC=90/100
- let SIZEREQUIRED=$SIZEDATA*$FACTORSYNC
- # El tamaño mínimo del sistema de ficheros btrfs es 250M, ponemos 300
- [ $SIZEREQUIRED -lt 300000 ] && SIZEREQUIRED=300000
- #Comprobar espacio libre en el contenedor.
- [ "$3" == "CACHE" -o "$3" == "cache" ] && SIZEFREE=$(ogGetFreeSize `ogFindCache`)
- [ "$3" == "REPO" -o "$3" == "repo" ] && SIZEFREE=$(df -k | grep $OGIMG | awk '{print $4}')
-else
- ogRaiseError $OG_ERR_PARTITION "$1 $2"
-fi
+SIZEDATA=$(df -k | grep $PART | awk '{print $3}')
+#Aplicar factor de compresion
+let SIZEREQUIRED=$SIZEDATA*$COMPRESS
+# El tamaño mínimo del sistema de ficheros btrfs es 250M, ponemos 300
+[ $SIZEREQUIRED -lt 300000 ] && SIZEREQUIRED=300000
+#Comprobar espacio libre en el contenedor.
+[ "$3" == "CACHE" -o "$3" == "cache" ] && SIZEFREE=$(ogGetFreeSize `ogFindCache`)
+[ "$3" == "REPO" -o "$3" == "repo" ] && SIZEFREE=$(df -k | grep $OGIMG | awk '{print $4}')
echo "[16]$MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED $SIZEFREE" | tee -a $OGLOGSESSION $OGLOGFILE
[ $SIZEREQUIRED -gt $SIZEFREE ] && ogRaiseError $OG_ERR_CACHESIZE "$3"
@@ -128,7 +139,6 @@ ogCreateFileImage $3 "$4" $IMGEXT $SIZEREQUIRED
echo "[50] $MSG_HELP_ogCreateImage $1 $2 $3 $4 " | tee -a $OGLOGSESSION $OGLOGFILE
echo " $MSG_HELP_ogCreateInfoImage" | tee -a $OGLOGSESSION $OGLOGFILE
ogCreateInfoImage $1 $2 $IMGEXT
-echo $?
TIMEAUX3=$[SECONDS-TIME2]
echo " $MSG_SCRIPTS_TASK_END, $MSG_SCRIPTS_TIME_PARTIAL : $[TIMEAUX3/60]m $[TIMEAUX3%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
@@ -141,9 +151,11 @@ ogWaitMountImage "$3" "$4" $IMGEXT $SIZEREQUIRED || ogRaiseError $OG_ERR_DONTMO
echo " $MSG_HELP_ogSyncCreate." | tee -a $OGLOGSESSION $OGLOGFILE
ogSyncCreate $1 $2 $3 "$4" $IMGEXT
-echo " $MSG_HELP_ogUnmountImage: $3 /$4.$IMGEXT" | tee -a $OGLOGSESSION $OGLOGFILE
-ogUnmountImage $3 "$4" $IMGEXT
+# Reducimos la imagen
+echo "[90] $MSG_HELP_ogReduceImage: $3 /$4.$IMGEXT" | tee -a $OGLOGSESSION $OGLOGFILE
+ogReduceImage $3 "$4" $IMGEXT
+#ogUnmountImage $3 "$4" $IMGEXT
ogUnlockImage "$3" "/$4.$IMGEXT"
ogUnlock $1 $2
TIMEAUX5=$[SECONDS-TIMEAUX3]
@@ -158,10 +170,7 @@ echo " $MSG_SCRIPTS_TIME_PARTIAL : $[TIMEAUX7/60]m $[TIMEAUX7%60]s" | tee -
#resumen de la operacion
IMGSIZE=$(ls -s $IMGFILE | cut -f1 -d" ")
-# TODO: Hay que cambiar la funcion ogGetImageInfo
-#IMGOS=$(ogGetImageInfo `ogGetPath $3 $4.img`) NO FUNCIONA Hay que modificar la funcion para las imagenes squash
TIME=$[SECONDS-TIME1]
echo "[100] $MSG_SCRIPTS_TIME_TOTAL $[TIME/60]m $[TIME%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
echo " FileSystem $PART with $SIZEDATA KB data created onto file-image as $4 and used $IMGSIZE KB acros DFS rsync " | tee -a $OGLOGSESSION $OGLOGFILE
-#echo " Image-file $4 metada: $IMGOS " | tee -a $OGLOGSESSION $OGLOGFILE
diff --git a/client/shared/scripts/createDiffImage b/client/shared/scripts/createDiffImage
index 721f747d..c0ccb846 100755
--- a/client/shared/scripts/createDiffImage
+++ b/client/shared/scripts/createDiffImage
@@ -39,9 +39,15 @@ function onexit() {
fi
exit $exit_status
}
+
+# Establecemos factor de compresion
+COMPRESS=90/100
+COMPRESSLINUX=70/100
+
#Carga el configurador del engine desde el fichero engine.cfg
[ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg
-# opciones de rsync
+
+# Factor de calculo de Time out al crear imagen: valor por defecto en engine.cfg
CREATESPEED=${CREATESPEED:-"100000*4"}
TIME1=$SECONDS
@@ -108,6 +114,19 @@ ogCheckFs $1 $2 >$OGLOGCOMMAND || ogRaiseError $OG_ERR_PARTITION "ogCheckFs $1 $
TIMEAUX1=$[SECONDS-TIME1]
echo " $MSG_SCRIPTS_TASK_END, $MSG_SCRIPTS_TIME_PARTIAL: $[TIMEAUX1/60]m $[TIMEAUX1%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
+# Borramos ficheros de paginacion y configuracion
+case "$(ogGetFsType $1 $2)" in
+ EXT[234])
+ ogCleanLinuxDevices $1 $2
+ rm -rf $ORIG/tmp/*
+ COMPRESS=$COMPRESSLINUX
+ ;;
+ NTFS)
+ ogDeleteFile $1 $2 pagefile.sys
+ ogDeleteFile $1 $2 hiberfil.sys
+ ;;
+esac
+
# Crear la imagen.
echo " " > $OGLOGCOMMAND
TIME2=$SECONDS
@@ -135,8 +154,8 @@ ogLock $1 $2
echo -n " $MSG_SCRIPTS_CREATE_SIZE" | tee -a $OGLOGSESSION $OGLOGFILE
cd $ORIG
SIZEDATA=$(cat /tmp/ogimg.info | tr '\n' '\0'| du -c --files0-from=- 2>/dev/null|tail -n1 |cut -f1)
-let SIZEREQUIRED=SIZEDATA*115/100
-# El tamaño mínimo del sistema de ficheros btrfs es 250M, ponemos 300
+let SIZEREQUIRED=$SIZEDATA*$COMPRESS
+# Tamaño minimo fichero imagen 300000
[ $SIZEREQUIRED -lt 300000 ] && SIZEREQUIRED=300000
TIMEAUX4=$[SECONDS-TIMEAUX3]
@@ -146,7 +165,7 @@ TIMEAUX4=$[SECONDS-TIMEAUX3]
echo " $SIZEREQUIRED $SIZEFREE" | tee -a $OGLOGSESSION $OGLOGFILE
[ $SIZEREQUIRED -gt $SIZEFREE ] && ogRaiseError $OG_ERR_CACHESIZE "$3"
-echo " $MSG_SCRIPTS_TASK_END, $MSG_SCRIPTS_TIME_PARTIAL $SIZEREQUIRED: $[TIMEAUX4/60]m $[TIMEAUX4%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
+echo " $MSG_SCRIPTS_TASK_END, $MSG_SCRIPTS_TIME_PARTIAL: $[TIMEAUX4/60]m $[TIMEAUX4%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
# Configuro la informacion del tamaño de los datos en /tmp/ogimg.info
sed -i s/SIZEDATA/"$SIZEDATA"/g /tmp/ogimg.info
@@ -164,7 +183,9 @@ echo "[80] $MSG_HELP_ogSyncCreate" | tee -a $OGLOGSESSION $OGLOGFILE
# Copio los datos a la imagen diferecial :
ogSyncCreate $1 $2 $3 "$5" $DIFFEXT
-ogUnmountImage $3 "$5" $DIFFEXT
+# Reducimos la imagen diferencial
+echo "[90] $MSG_HELP_ogReduceImage: $3 /$4.$IMGEXT" | tee -a $OGLOGSESSION $OGLOGFILE
+ogReduceImage $3 "$5" $DIFFEXT
ogUnmountImage $3 "$4" $IMGEXT
@@ -184,8 +205,6 @@ file "$DIFFFILE" |grep "BTRFS Filesystem" >/dev/null || ogRaiseError $OG_ERR_IM
#resumen de la operacion
IMGSIZE=$(ls -s ${DIFFFILE[CACHE]}| cut -f1 -d" ")
-#IMGOS=$(ogGetImageInfo `ogGetPath $3 $4.img`) NO FUNCIONA Hay que modificar la funcion para las imagenes squash
-
TIME=$[SECONDS-TIME1]
echo "[100] $MSG_SCRIPTS_TIME_TOTAL $[TIME/60]m $[TIME%60]s" | tee -a $OGLOGSESSION $OGLOGFILE
echo " FileSystem $PART with $SIZEDATA KB data created onto file-image as $4 and used $IMGSIZE KB acros DFS rsync " | tee -a $OGLOGSESSION $OGLOGFILE