#657 sincronizadas tipo archivo: correccion erratas adaptación a ogclient 1.0.5
git-svn-id: https://opengnsys.es/svn/branches/version1.0@4422 a21b9725-9963-47de-94b9-378ad31fedc9remotes/github/debian-pkg
parent
bf365a4ca8
commit
81ae95c44b
|
@ -27,12 +27,7 @@ REPODIR="$BASEDIR/images/"
|
|||
[ -z $OGENGINECONFIGURATE ] && source $BASEDIR/client/etc/engine.cfg
|
||||
# FS segun la configuracion y la version del kernel. ext4 para < 3.7, para >= BTRFS
|
||||
KERNEL=$(file -bkr /opt/opengnsys/tftpboot/ogclient/ogvmlinuz |awk '/Linux/ {for(i=1;i<=NF;i++) if($i~/version/) {v=$(i+1);printf("%d",v);sub(/[0-9]*\./,"",v);printf(".%02d",v)}}')
|
||||
if [ $KERNEL \< 3.07 ]; then
|
||||
IMGFS="EXT4"
|
||||
else
|
||||
[ "$IMGFS" == "" ] && IMGFS="BTRFS"
|
||||
|
||||
fi
|
||||
[ $KERNEL \< 3.07 ] && IMGFS="EXT4" || IMGFS=${IMGFS:-"BTRFS"}
|
||||
|
||||
# Añade registro de incidencias.
|
||||
function echolog () {
|
||||
|
@ -59,7 +54,10 @@ function mountImage () {
|
|||
echolog "mount $OPTMOUNT -o compress=lzo $1 $2"
|
||||
mount $OPTMOUNT -o compress=lzo "$1" "$2"
|
||||
fi
|
||||
return $?
|
||||
# Si esta montado da error 32, lo damos como bueno
|
||||
RETVAL=$?
|
||||
[ $RETVAL -eq 32 ] && RETVAL=0
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
mkdir -p $MCASTLOGBASE
|
||||
|
@ -174,11 +172,10 @@ case "$PARM1" in
|
|||
fi
|
||||
# Montamos la imagen.
|
||||
mountImage "$IMGFILE" "$DIRMOUNT"
|
||||
RETVAL=$?
|
||||
if [ $RETVAL -ne 0 ]; then
|
||||
if [ $? -ne 0 ]; then
|
||||
rmdir "$DIRMOUNT"
|
||||
echolog -o "Error al crear/redimensionar la imagen"
|
||||
exit $RETVAL
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#touch "$DIRMOUNT/ogimg.info"
|
||||
|
@ -203,7 +200,6 @@ case "$PARM1" in
|
|||
DIRMOUNT="$DIRMOUNT.diff"
|
||||
fi
|
||||
IMGFILE="$REPODIR/$PARM2.$IMGEXT"
|
||||
LOCKFILE="$IMGFILE.lock"
|
||||
echolog "Montamos la imagen $IMGFILE "
|
||||
mkdir -p "$DIRMOUNT"
|
||||
mountImage "$IMGFILE" "$DIRMOUNT" ro || (echolog "Error al montar la imagen"; exit 1)
|
||||
|
@ -250,40 +246,40 @@ case "$PARM1" in
|
|||
|
||||
[ -d $DIRMOUNT ] || mkdir $DIRMOUNT
|
||||
mountImage "$IMGFILE" "$DIRMOUNT" || (echolog "Error al montar la imagen $IMGFILE"; exit 1)
|
||||
|
||||
|
||||
# Si el espacio libre menor que 200Mb desmontamos la imagen y nos salimos
|
||||
AVAILABLE=$(df -k|grep $DIRMOUNT|awk '{print $4}')
|
||||
AVAILABLE=$(df -k|grep $DIRMOUNT|awk '{print $4}')
|
||||
if [ $AVAILABLE -lt 200000 ]; then
|
||||
echolog "reducir imagen REPO $PARM2 $IMGEXT. tamaño minimo, nada que hacer"
|
||||
umount $DIRMOUNT
|
||||
rmdir $DIRMOUNT
|
||||
exit 0
|
||||
umount $DIRMOUNT || (echolog "Error al desmontar la imagen $IMGFILE"; exit 1)
|
||||
else
|
||||
|
||||
# Calculamos la diferencia entre el tamaño interno y externo
|
||||
EXTSIZE=$(ls -l --block-size=1024 $IMGFILE | cut -f5 -d" ")
|
||||
INTSIZE=$(df -k|grep "$DIRMOUNT"|awk '{print $2}')
|
||||
let EDGESIZE=$EXTSIZE-$INTSIZE
|
||||
|
||||
echolog "reducir imagen REPO $PARM2 $IMGEXT, tamaño final: $ENDSIZE"
|
||||
umount $DIRMOUNT
|
||||
LOOPDEVICE=$(losetup -f)
|
||||
losetup $LOOPDEVICE "$IMGFILE"
|
||||
|
||||
# Redimensiono sistema de ficheros
|
||||
echolog "resize2fs -fpM $LOOPDEVICE "
|
||||
resize2fs -fpM $LOOPDEVICE # 2>&1 > $REPOLOG
|
||||
mountImage "$IMGFILE" "$DIRMOUNT"
|
||||
# Calculamos el tamaño final del archivo
|
||||
INTSIZE=$(df -k|grep "$DIRMOUNT"|awk '{print $2}')
|
||||
let EXTSIZE=$INTSIZE+$EDGESIZE
|
||||
umount $DIRMOUNT || (echolog "Error al desmontar la imagen $IMGFILE"; exit 1)
|
||||
# Si existe dispositivo loop lo borramos.
|
||||
[ $LOOPDEVICE ] && losetup -a| grep $LOOPDEVICE &> /dev/null && losetup -d $LOOPDEVICE
|
||||
# Corto el archivo al tamaño del sistema de ficheros
|
||||
echo "truncate --size=\"$EXTSIZE\"k $IMGFILE"
|
||||
echolog "truncate --size=\"$EXTSIZE\"k $IMGFILE"
|
||||
truncate --size="$EXTSIZE"k $IMGFILE
|
||||
fi
|
||||
|
||||
# Calculamos la diferencia entre el tamaño interno y externo
|
||||
EXTSIZE=$(ls -l --block-size=1024 $IMGFILE | cut -f5 -d" ")
|
||||
INTSIZE=$(df -k|grep "$DIRMOUNT"|awk '{print $2}')
|
||||
let EDGESIZE=$EXTSIZE-$INTSIZE
|
||||
|
||||
echolog "reducir imagen REPO $PARM2 $IMGEXT, tamaño final: $ENDSIZE"
|
||||
umount $DIRMOUNT
|
||||
LOOPDEVICE=$(losetup -f)
|
||||
losetup $LOOPDEVICE "$IMGFILE"
|
||||
|
||||
# Redimensiono sistema de ficheros
|
||||
echolog "resize2fs -fpM $LOOPDEVICE "
|
||||
resize2fs -fpM $LOOPDEVICE # 2>&1 > $REPOLOG
|
||||
mountImage "$IMGFILE" "$DIRMOUNT"
|
||||
# Calculamos el tamaño final del archivo
|
||||
INTSIZE=$(df -k|grep "$DIRMOUNT"|awk '{print $2}')
|
||||
let EXTSIZE=$INTSIZE+$EDGESIZE
|
||||
umount $DIRMOUNT || (echolog "Error al desmontar la imagen $IMGFILE"; exit 1)
|
||||
# Si existe dispositivo loop lo borramos.
|
||||
[ $LOOPDEVICE ] && losetup -a| grep $LOOPDEVICE &> /dev/null && losetup -d $LOOPDEVICE
|
||||
# Corto el archivo al tamaño del sistema de ficheros
|
||||
echo "truncate --size=\"$EXTSIZE\"k $IMGFILE"
|
||||
echolog "truncate --size=\"$EXTSIZE\"k $IMGFILE"
|
||||
truncate --size="$EXTSIZE"k $IMGFILE
|
||||
else
|
||||
umount $DIRMOUNT || (echolog "Error al desmontar la imagen $IMGFILE"; exit 1)
|
||||
fi
|
||||
|
|
|
@ -412,7 +412,7 @@ if [ "_${4^^}_" == "_SYNC_" -o "_${4^^}_" == "_DIFF_" ]; then
|
|||
[ $KERNELVERSION \< 3.07 ] && IMGFS="EXT4" || IMGFS=${IMGFS:-"BTRFS"}
|
||||
FACTORSYNC=${FACTORSYNC:-"120"}
|
||||
# Si IMGFS="BTRFS" la compresion es mayor.
|
||||
[ $IMGFS == "BTRFS" ] && let FACTORSYNC=$FACTORSYNC
|
||||
[ $IMGFS == "BTRFS" ] && let FACTORSYNC=$FACTORSYNC-20
|
||||
|
||||
let SIZEREQUIRED=$SIZEDATA*$FACTORSYNC/100
|
||||
# El tamaño mínimo del sistema de ficheros btrfs es 250M, ponemos 300
|
||||
|
|
|
@ -100,11 +100,7 @@ if [ "$1" == "CACHE" -o "$1" == "cache" ]; then
|
|||
#Formateamos imagen
|
||||
losetup $LOOPDEVICE $IMGFILE
|
||||
# FS de la imagen segun la configuracion y la version del kernel: < 3.7 ext4, si >= btrfs
|
||||
if [ $KERNELVERSION \< 3.07 ]; then
|
||||
IMGFS == "EXT4"
|
||||
else
|
||||
[ "$IMGFS" == "" ] && IMGFS="BTRFS"
|
||||
fi
|
||||
[ $KERNELVERSION \< 3.07 ] && IMGFS == "EXT4" || IMGFS=${IMGFS:-"BTRFS"}
|
||||
|
||||
if [ "$IMGFS" == "EXT4" ]; then
|
||||
echo " mkfs.ext4 -i 4096 -b 4096 -L "${2##*\/}" $LOOPDEVICE"
|
||||
|
@ -117,7 +113,6 @@ if [ "$1" == "CACHE" -o "$1" == "cache" ]; then
|
|||
# Monto la imagen
|
||||
ogMountImage $1 "$2" $3 &>/dev/null
|
||||
[ $? -eq 0 ] || return $( ogRaiseError $OG_ERR_IMAGE "$3 $4"; echo $?)
|
||||
#touch "$DIRMOUNT/ogimg.info"
|
||||
echo "mounted"> $IMGFILE.lock
|
||||
|
||||
# Si existe dispositivo de loop lo borro.
|
||||
|
@ -200,11 +195,8 @@ SIZEDATA=${SIZEDATA:-"SIZEDATA"}
|
|||
|
||||
# Incluimos información de la imagen. Segun el kernel sera ext4 o btrfs.
|
||||
KERNELVERSION=$(uname -r| awk '{printf("%d",$1);sub(/[0-9]*\./,"",$1);printf(".%02d",$1)}')
|
||||
if [ $KERNELVERSION \< 3.07 ]; then
|
||||
echo "#EXT4:NO:$FSTYPE:$SIZEDATA" > $IMGINFO
|
||||
else
|
||||
echo "#BTRFS:LZO:$FSTYPE:$SIZEDATA" > $IMGINFO
|
||||
fi
|
||||
[ $KERNELVERSION \< 3.07 ] && IMGFS == "EXT4" || IMGFS=${IMGFS:-"BTRFS"}
|
||||
echo "#$IMGFS:NO:$FSTYPE:$SIZEDATA" > $IMGINFO
|
||||
|
||||
if [ "$IMGTYPE" == "img" ]; then
|
||||
# Imagen Basica
|
||||
|
|
|
@ -27,7 +27,7 @@ OGWINREDUCE=TRUE
|
|||
# Factor para calcular el time-out al crear la imagen. 100000k -> 4s
|
||||
CREATESPEED=100000*4
|
||||
# Factor de compresion para las imagenes (windos en ext4).
|
||||
ZSYNC=120
|
||||
FACTORSYNC=120
|
||||
# Realizar copia de seguridad antes de crear la imagen.
|
||||
BACKUP=false
|
||||
# Sistema de archivo de la imagenes sincronizadas. EXT4 o BTRFS
|
||||
|
|
|
@ -126,7 +126,7 @@ 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 $?)
|
||||
read SIZEDATA SIZEREQUIRED ISENOUGHSPACE <<< $(ogGetSizeParameters $1 $2 "$3" DIFF)
|
||||
|
||||
ogEcho log session "[50] $PROG: $MSG_SCRIPTS_CREATE_SIZE $SIZEREQUIRED"
|
||||
[ "$ISENOUGHSPACE" == "TRUE" ] || exit $(ogRaiseError session $OG_ERR_CACHESIZE "$3"; echo $?)
|
||||
|
|
Loading…
Reference in New Issue