diff options
-rwxr-xr-x | client/engine/Image.lib | 71 | ||||
-rw-r--r-- | client/shared/etc/lang.ca_ES.conf | 4 | ||||
-rw-r--r-- | client/shared/etc/lang.en_GB.conf | 2 | ||||
-rw-r--r-- | client/shared/etc/lang.es_ES.conf | 4 | ||||
-rwxr-xr-x | client/shared/scripts/createBaseImage | 45 | ||||
-rwxr-xr-x | client/shared/scripts/createDiffImage | 44 | ||||
-rwxr-xr-x | client/shared/scripts/createImage | 24 |
7 files changed, 103 insertions, 91 deletions
diff --git a/client/engine/Image.lib b/client/engine/Image.lib index 81014462..190a36a3 100755 --- a/client/engine/Image.lib +++ b/client/engine/Image.lib @@ -363,6 +363,77 @@ IMGFILE="$IMGDIR/$(basename "$3").mbr" dd if="$DISK" of="$IMGFILE" bs=446 count=1 || ogRaiseError $OG_ERR_IMAGE "$1 $IMGFILE" || return $? } +#/** +# ogGetSizeParameters int_num_disk int_num_part str_repo [monolit|sync|diff] +#@brief Devuelve el tamaño de los datos de un sistema de ficheros, el espacio necesario para la imagen y si cabe en el repositorio elegido. +#@param int_disk numero de disco +#@param int_part numero de particion +#@param str_repo repositorio de imágenes { REPO, CACHE } +#@param str_imageType Tipo de imagen: monolit (por defecto), sync o diff. (parametro opcional) +#@return SIZEDATA SIZEREQUIRED ISENOUGHSPACE +#@note si str_imageType= diff necesario /tmp/ogimg.info, que es creado por ogCreateInfoImage. +#@exception OG_ERR_FORMAT formato incorrecto. +#@author Irina Gomez, ETSII Universidad de Sevilla +#@date 2014/10/24 +#*/ ## +function ogGetSizeParameters () +{ +local MNTDIR SIZEDATA KERNELVERSION SIZEREQUIRED FACTORGZIP FACTORLZOP SIZEFREE +# Si se solicita, mostrar ayuda. +if [ "$*" == "help" ]; then + ogHelp "$FUNCNAME" "$FUNCNAME num_disk num_part str_repo [monolic|sync|diff]" \ + "if $FUNCNAME 1 2 REPO sync ; then ...; fi" \ + "if $FUNCNAME 1 6 CACHE ; then ...; fi" + return +fi +# Error si no se reciben 1 o 2 parámetros. +[ $# -lt 3 ] && return $(ogRaiseError session $OG_ERR_FORMAT "$MSG_FORMAT: $PROG ndisco nparticion REPO|CACHE [monolitic|sync]" ; echo $?) + +MNTDIR=$(ogMount $1 $2) +if [ "$MNTDIR" == "" ]; then + ogRaiseError $OG_ERR_PARTITION "$1 $2" + return $? +fi + +# Datos contenidos en la particion o en la lista de archivos de contiene la diferencial. +if [ "_${4^^}_" == "_DIFF_" ]; then + [ -r /tmp/ogimg.info ] || return $(ogRaiseError session $OG_ERR_NOTFOUND "/tmp/ogimg.info"; echo $?) + cd $MNTDIR + SIZEDATA=$(grep -v "\/$" /tmp/ogimg.info | tr '\n' '\0'| du -x -c --files0-from=- 2>/dev/null|tail -n1 |cut -f1) +else + SIZEDATA=$(df -k | grep $MNTDIR | awk '{print $3}') +fi + +#Aplicar factor de compresion +if [ "_${4^^}_" == "_SYNC_" -o "_${4^^}_" == "_DIFF_" ]; then + + # Sistema de fichero de la imagen según kernel, menor que 3.7 EXT4. comparamos revision + KERNELVERSION=$(uname -r| awk '{printf("%d",$1);sub(/[0-9]*\./,"",$1);printf(".%02d",$1)}') + [ $KERNELVERSION \< 3.07 ] && IMGFS="EXT4" || IMGFS=${IMGFS:-"BTRFS"} + FACTORSYNC=${FACTORSYNC:-"120"} + # Si IMGFS="BTRFS" la compresion es mayor. + [ $IMGFS == "BTRFS" ] && let FACTORSYNC=$FACTORSYNC + + let SIZEREQUIRED=$SIZEDATA*$FACTORSYNC/100 + # El tamaño mínimo del sistema de ficheros btrfs es 250M, ponemos 300 + [ $SIZEREQUIRED -lt 300000 ] && SIZEREQUIRED=300000 + +else + FACTORGZIP=55/100 + FACTORLZOP=65/100 + let SIZEREQUIRED=$SIZEDATA*$FACTORLZOP +fi + +#Comprobar espacio libre en el contenedor. +[ "${3^^}" == "CACHE" ] && SIZEFREE=$(ogGetFreeSize `ogFindCache`) +[ "${3^^}" == "REPO" ] && SIZEFREE=$(df -k | grep $OGIMG | awk '{print $4}') + +[ "$SIZEREQUIRED" -lt "$SIZEFREE" ] && ISENOUGHSPACE=TRUE || ISENOUGHSPACE=FALSE + +echo $SIZEDATA $SIZEREQUIRED $ISENOUGHSPACE + + +} #/** # ogIsImageLocked [str_repo] path_image diff --git a/client/shared/etc/lang.ca_ES.conf b/client/shared/etc/lang.ca_ES.conf index ecad9b6b..d6257dc0 100644 --- a/client/shared/etc/lang.ca_ES.conf +++ b/client/shared/etc/lang.ca_ES.conf @@ -90,6 +90,7 @@ MSG_HELP_ogBoot="Arranca un sistema operativo instalado." MSG_HELP_ogCalculateChecksum="Calcula la suma de comprobación (checksum) de un fichero." MSG_HELP_ogCheckFs="Comprueba la consistencia de un sistema de archivos." MSG_HELP_ogCheckSyncImage="Muestra el contenido de la imagen para comprobarla." +MSG_HELP_ogCleanOs="Elimina los archivos que no son necesarios en el sistema operativo." MSG_HELP_ogCompareChecksumFiles="Compara si coinciden las sumas de comprobación almacenadas de 2 ficheros." MSG_HELP_ogCopyFile="Copia un fichero a otro almacenamiento." MSG_HELP_ogCreateCache="Reserva espacio para la partición de caché al final del disco 1." @@ -119,7 +120,7 @@ MSG_HELP_ogGetCacheSpace="Devuelve el espacio máximo disponible que puede ser r MSG_HELP_ogGetDiskSize="Devuelve el tamaño del disco." MSG_HELP_ogGetFsSize="Devuelve el tamaño de un sistema de archivos." MSG_HELP_ogGetFsType="Devuelve el mnemónico de tipo de sistema de archivos." -MSG_HELP_ogGetGroupDir="Devuelve el cmaino del directorio por defecto para el grupo del cliente." +MSG_HELP_ogGetGroupDir="Devuelve el camino del directorio por defecto para el grupo del cliente." MSG_HELP_ogGetGroupName="Devuelve el nombre del grupo al que pertenece el cliente." MSG_HELP_ogGetHivePath="Devuelve el camino completo del fichero de una sección del registro de Windows." MSG_HELP_ogGetHostname="Devuelve el nombre de la máquina local." @@ -141,6 +142,7 @@ MSG_HELP_ogGetPath="Devuelve el camino completo de un fichero de sistema OpenGnS MSG_HELP_ogGetRegistryValue="Devuelve el dato de un valor del registro de Windows." MSG_HELP_ogGetRepoIp="Devuelve la dirección IP del repositorio de datos." MSG_HELP_ogGetServerIp="Devuelve la dirección IP del servidor principal." +MSG_HELP_ogGetSizeParameters="Devuelve el tamaño de los datos de un sistema de ficheros, el espacio necesario para la imagen y si cabe en el repositorio elegido." MSG_HELP_ogGetWindowsName="Devuelve el nombre del cliente guardado en el registro de Windows." MSG_HELP_ogGrubAddOgclient="Incluye en el grub del MBR una entrada llamando al cliente de opengnsys." MSG_HELP_ogGrubDeleteEntry="Borra en el grub del MBR las entradas para el inicio en una particion." diff --git a/client/shared/etc/lang.en_GB.conf b/client/shared/etc/lang.en_GB.conf index 69965eeb..42a39b9c 100644 --- a/client/shared/etc/lang.en_GB.conf +++ b/client/shared/etc/lang.en_GB.conf @@ -90,6 +90,7 @@ MSG_HELP_ogBoot="Boot a installed operating system." MSG_HELP_ogCalculateChecksum="Calculate file checksum." MSG_HELP_ogCheckFs="Check a filesystem." MSG_HELP_ogCheckSyncImage="Displays the contents of the image to check it." +MSG_HELP_ogCleanOs="Elimina los archivos que no son necesarios en el sistema operativo." MSG_HELP_ogCompareChecksumFiles="Compare if the checksums match." MSG_HELP_ogCopyFile="Copy a file to other storage." MSG_HELP_ogCreateCache="Reserve space for the cache partition at the end of disc 1." @@ -141,6 +142,7 @@ MSG_HELP_ogGetPath="Return the file full path." MSG_HELP_ogGetRegistryValue="Return a data value from the Windows registry." MSG_HELP_ogGetRepoIp="Return the IP address of an OpenGnsys Repository." MSG_HELP_ogGetServerIp="Return the main OpenGnSys Server IP address." +MSG_HELP_ogGetSizeParameters="Devuelve el tamaño de los datos de un sistema de ficheros, el espacio necesario para la imagen y si cabe en el repositorio elegido." MSG_HELP_ogGetWindowsName="Return the client name saved in the Windows registry." MSG_HELP_ogGrubAddOgclient="Incluye en el grub del MBR una entrada llamando al cliente de opengnsys." MSG_HELP_ogGrubDeleteEntry="Borra en el grub del MBR las entradas para el inicio en una particion." diff --git a/client/shared/etc/lang.es_ES.conf b/client/shared/etc/lang.es_ES.conf index 7fe85629..524e95cf 100644 --- a/client/shared/etc/lang.es_ES.conf +++ b/client/shared/etc/lang.es_ES.conf @@ -90,6 +90,7 @@ MSG_HELP_ogBoot="Arranca un sistema operativo instalado." MSG_HELP_ogCalculateChecksum="Calcula la suma de comprobación (checksum) de un fichero." MSG_HELP_ogCheckFs="Comprueba la consistencia de un sistema de archivos." MSG_HELP_ogCheckSyncImage="Muestra el contenido de la imagen para comprobarla." +MSG_HELP_ogCleanOs="Elimina los archivos que no son necesarios en el sistema operativo." MSG_HELP_ogCompareChecksumFiles="Compara si coinciden las sumas de comprobación almacenadas de 2 ficheros." MSG_HELP_ogCopyFile="Copia un fichero a otro almacenamiento." MSG_HELP_ogCreateCache="Reserva espacio para la partición de caché al final del disco 1." @@ -119,7 +120,7 @@ MSG_HELP_ogGetCacheSpace="Devuelve el espacio máximo disponible que puede ser r MSG_HELP_ogGetDiskSize="Devuelve el tamaño del disco." MSG_HELP_ogGetFsSize="Devuelve el tamaño de un sistema de archivos." MSG_HELP_ogGetFsType="Devuelve el mnemónico de tipo de sistema de archivos." -MSG_HELP_ogGetGroupDir="Devuelve el cmaino del directorio por defecto para el grupo del cliente." +MSG_HELP_ogGetGroupDir="Devuelve el camino del directorio por defecto para el grupo del cliente." MSG_HELP_ogGetGroupName="Devuelve el nombre del grupo al que pertenece el cliente." MSG_HELP_ogGetHivePath="Devuelve el camino completo del fichero de una sección del registro de Windows." MSG_HELP_ogGetHostname="Devuelve el nombre de la máquina local." @@ -141,6 +142,7 @@ MSG_HELP_ogGetPath="Devuelve el camino completo de un fichero de sistema OpenGnS MSG_HELP_ogGetRegistryValue="Devuelve el dato de un valor del registro de Windows." MSG_HELP_ogGetRepoIp="Devuelve la dirección IP del repositorio de datos." MSG_HELP_ogGetServerIp="Devuelve la dirección IP del servidor principal." +MSG_HELP_ogGetSizeParameters="Devuelve el tamaño de los datos de un sistema de ficheros, el espacio necesario para la imagen y si cabe en el repositorio elegido." MSG_HELP_ogGetWindowsName="Devuelve el nombre del cliente guardado en el registro de Windows." MSG_HELP_ogGrubAddOgclient="Incluye en el grub del MBR una entrada llamando al cliente de opengnsys." MSG_HELP_ogGrubDeleteEntry="Borra en el grub del MBR las entradas para el inicio en una particion." diff --git a/client/shared/scripts/createBaseImage b/client/shared/scripts/createBaseImage index b9a3c557..1e35aff4 100755 --- a/client/shared/scripts/createBaseImage +++ b/client/shared/scripts/createBaseImage @@ -40,19 +40,6 @@ TIME1=$SECONDS #Carga el configurador del engine desde el fichero engine.cfg [ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg -# Factor de calculo de Time out al crear imagen: valor por defecto en engine.cfg -CREATESPEED=${CREATESPEED:-"100000*4"} - -# Sistema de fichero de la imagen según kernel, menor que 3.7 EXT4. comparamos revision -KERNELVERSION=$(uname -r| awk '{printf("%d",$1);sub(/[0-9]*\./,"",$1);printf(".%02d",$1)}') -[ $KERNELVERSION \< 3.07 ] && IMGFS="EXT4" || IMGFS="BTRFS" - -# % de compresion para estimacion tamaño imagen IMGFS="EXT4" -ZSYNC=${ZSYNC:-"120"} - -# Si IMGFS="BTRFS" la compresion es mayor. -[ $IMGFS == "BTRFS" ] && let ZSYNC=$ZSYNC-30 - PROG="$(basename $0)" # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then @@ -66,12 +53,12 @@ fi # Limpiamos fichero de log echo " " > $OGLOGCOMMAND -[ "$(ogGetCaller)" == "RestaurarImagenBasica" ] || echo -n ""> $OGLOGSESSION +[ "$(ogGetCaller)" == "CrearImagenBasica" ] || echo -n ""> $OGLOGSESSION ogEcho log session "[1] $MSG_SCRIPTS_START $0 $*" # Valores por defecto en etc/engine.cfg -IMGEXT="img" +IMGEXT=${IMGEXT:-"img"} REPOIP=$(ogGetRepoIp) @@ -97,29 +84,14 @@ ogCheckFs $1 $2 &> $OGLOGCOMMAND || exit $(ogRaiseError session $OG_ERR_PARTITIO ORIG=$(ogMount $1 $2) || exit $(ogRaiseError session $OG_ERR_PARTITION "$1 $2" ; echo $?) # Borramos ficheros de paginacion y configuracion -case "$(ogGetFsType $1 $2)" in - EXT[234]) - ogCleanLinuxDevices $1 $2 - rm -rf $ORIG/tmp/* - ;; - NTFS) - [ $(ogGetPath $1 $2 pagefile.sys) ] && ogDeleteFile $1 $2 pagefile.sys - [ $(ogGetPath $1 $2 hiberfil.sys) ] && ogDeleteFile $1 $2 hiberfil.sys - [ $(ogGetPath $1 $2 swapfile.sys) ] && ogDeleteFile $1 $2 swapfile.sys - ;; -esac +ogCleanOs $1 $2 #Comprobar espacio que requerira la imagen para ser almacenada -SIZEDATA=$(df -k | grep $PART | awk '{print $3}') -#Aplicar factor de compresion -let SIZEREQUIRED=$SIZEDATA*$ZSYNC/100 -# 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}') -ogEcho log session " $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED $SIZEFREE" -[ $SIZEREQUIRED -gt $SIZEFREE ] && exit $(ogRaiseError session $OG_ERR_CACHESIZE "$3"; echo $?) +read SIZEDATA SIZEREQUIRED ISENOUGHSPACE <<< $(ogGetSizeParameters $1 $2 "$3" SYNC) + +ogEcho log session "[16] $PROG: $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED" +[ "$ISENOUGHSPACE" == "TRUE" ] || exit $(ogRaiseError session $OG_ERR_CACHESIZE "$3"; echo $?) + IMGDIR="$(ogGetParentPath "$3" "/$4")" IMGFILE=${IMGDIR[$3]}/$(basename "/$4").$IMGEXT @@ -128,6 +100,7 @@ echo " " > $OGLOGCOMMAND TIME2=$SECONDS ogEcho log session "[40] $MSG_HELP_ogCreateImage $1 $2 $3 $4 " + # Si existe el fichero de la imagen se hace copia de seguridad y se redimensiona, si no existe se crea. ogEcho log session "[50] $MSG_HELP_ogCreateFileImage." ogLockImage "$3" "/$4.$IMGEXT" diff --git a/client/shared/scripts/createDiffImage b/client/shared/scripts/createDiffImage index 32784012..a832abeb 100755 --- a/client/shared/scripts/createDiffImage +++ b/client/shared/scripts/createDiffImage @@ -43,16 +43,6 @@ function onexit() { #Carga el configurador del engine desde el fichero engine.cfg [ -z $OGENGINECONFIGURATE ] && source /opt/opengnsys/etc/engine.cfg -# Factor de calculo de Time out al crear imagen: valor por defecto en engine.cfg -CREATESPEED=${CREATESPEED:-"100000*4"} -# Sistema de fichero de la imagen según kernel, menor que 3.7 EXT4. comparamos revision -KERNELVERSION=$(uname -r| awk '{printf("%d",$1);sub(/[0-9]*\./,"",$1);printf(".%02d",$1)}') -[ $KERNELVERSION \< 3.07 ] && IMGFS="EXT4" || IMGFS="BTRFS" -# % de compresion para estimacion tamaño imagen IMGFS="EXT4" -ZSYNC=${ZSYNC:-"120"} -# Si IMGFS="BTRFS" la compresion es mayor. -[ $IMGFS == "BTRFS" ] && let ZSYNC=$ZSYNC-30 - TIME1=$SECONDS PROG="$(basename $0)" @@ -116,18 +106,7 @@ ogUnmount $1 $2 ogCheckFs $1 $2 >$OGLOGCOMMAND || exit $(ogRaiseError session $OG_ERR_PARTITION "ogCheckFs $1 $2" ; echo $?) # Borramos ficheros de paginacion y configuracion -FSTYPE=$(ogGetFsType $1 $2) -case "$FSTYPE" in - EXT[234]) - ogCleanLinuxDevices $1 $2 - rm -rf $ORIG/tmp/* - ;; - NTFS) - [ $(ogGetPath $1 $2 pagefile.sys) ] && ogDeleteFile $1 $2 pagefile.sys - [ $(ogGetPath $1 $2 hiberfil.sys) ] && ogDeleteFile $1 $2 hiberfil.sys - [ $(ogGetPath $1 $2 swapfile.sys) ] && ogDeleteFile $1 $2 swapfile.sys - ;; -esac +ogCleanOs $1 $2 # Crear la imagen. echo " " > $OGLOGCOMMAND @@ -142,25 +121,19 @@ ogMountImage $3 "$4" $IMGEXT >/dev/null ogWaitSyncImage $3 "$4" $IMGEXT "mounted" || exit $(ogRaiseError session $OG_ERR_DONTMOUNT_IMAGE "$3 $4 $IMGEXT: time_out."; echo $?) # Creamos la informacion de la imagen. -ogEcho log session "[50] $MSG_HELP_ogCreateInfoImage " +ogEcho log session "[45] $MSG_HELP_ogCreateInfoImage " ogCreateInfoImage $1 $2 $3 "$4" "${DIFFTYPE}" [ $? -eq $OG_ERR_NOTDIFFERENT ] && exit $(ogRaiseError session $OG_ERR_NOTDIFFERENT; echo $?) +#Comprobar espacio que requerira la imagen para ser almacenada +read SIZEDATA SIZEREQUIRED ISENOUGHSPACE <<< $(ogGetSizeParameters $1 $2 "$3" DIFF ; echo $?) + +ogEcho log session "[50] $PROG: $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED" +[ "$ISENOUGHSPACE" == "TRUE" ] || exit $(ogRaiseError session $OG_ERR_CACHESIZE "$3"; echo $?) + #Calculamos el tamaño de la imagen: ogMount $1 $2 >/dev/null ogLock $1 $2 -ogEcho log session " $MSG_SCRIPTS_CREATE_SIZE" -cd $ORIG -SIZEDATA=$(grep -v "\/$" /tmp/ogimg.info | tr '\n' '\0'| du -x -c --files0-from=- 2>/dev/null|tail -n1 |cut -f1) -let SIZEREQUIRED=$SIZEDATA*$ZSYNC/100 -# Tamaño minimo fichero imagen 300000 -[ $SIZEREQUIRED -lt 300000 ] && SIZEREQUIRED=300000 - -# Comprueba que quepa en el repositorio -[ "$3" == "CACHE" -o "$3" == "cache" ] && SIZEFREE=$(ogGetFreeSize `ogFindCache`) && ogMountCache >/dev/null -[ "$3" == "REPO" -o "$3" == "repo" ] && SIZEFREE=$(df -k | grep $OGIMG | awk '{print $4}') -ogEcho log session " $SIZEREQUIRED $SIZEFREE" -[ $SIZEREQUIRED -gt $SIZEFREE ] && exit $(ogRaiseError session $OG_ERR_CACHESIZE "$3"; echo $?) TIMEAUX3=$[SECONDS-TIME2] ogEcho log session " $MSG_SCRIPTS_TASK_END $MSG_SCRIPTS_TIME_PARTIAL: $[TIMEAUX3/60]m $[TIMEAUX3%60]s" @@ -202,7 +175,6 @@ ogWaitSyncImage "$3" "$5" $DIFFTYPE "reduced" $SIZEREQUIRED || exit $(ogRaiseErr echo " " > $OGLOGCOMMAND # Comprobamos que la imagen esta bien ogEcho log session "[95] $MSG_HELP_ogCheckSyncImage" -sleep 10 ogCheckSyncImage $3 "$5" diff || exit $(ogRaiseError session $OG_ERR_IMAGE "$3 $5 diff"; echo $?) #resumen de la operacion diff --git a/client/shared/scripts/createImage b/client/shared/scripts/createImage index 50ef1768..a43c01ba 100755 --- a/client/shared/scripts/createImage +++ b/client/shared/scripts/createImage @@ -91,25 +91,15 @@ if [ -f "$IMGFILE" ]; then mv "$IMGFILE.sum" "$IMGFILE.sum.ant" 2>/dev/null fi -#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 - FACTORGZIP=55/100 - FACTORLZOP=65/100 - let SIZEREQUIRED=$SIZEDATA*$FACTORLZOP - #Comprobar espacio libre en el contenedor. - [ "${3^^}" == "CACHE" ] && SIZEFREE=$(ogGetFreeSize `ogFindCache`) - [ "${3^^}" == "REPO" ] && SIZEFREE=$(df -k | grep $OGIMG | awk '{print $4}') -else - ogRaiseError $OG_ERR_PARTITION "$1 $2" - exit $? -fi +# Borramos ficheros de paginacion y configuracion +ogCleanOs $1 $2 + +#Comprobar espacio que requerira la imagen para ser almacenada +read SIZEDATA SIZEREQUIRED ISENOUGHSPACE <<< $(ogGetSizeParameters $1 $2 "$3" ; echo $?) -ogEcho log session "[16] $PROG: $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED $SIZEFREE" -[ "$SIZEREQUIRED" -gt "$SIZEFREE" ] && exit $(ogRaiseError $OG_ERR_CACHESIZE "$3" || echo $?) +ogEcho log session "[16] $PROG: $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED" +[ "$ISENOUGHSPACE" == "TRUE" ] || exit $(ogRaiseError session $OG_ERR_CACHESIZE "$3"; echo $?) # Ejecuta script personalizado de preconfiguración del sistema operativo modelo. if which createImageCustomPre &>/dev/null; then |