diff options
author | irina <irinagomez@us.es> | 2014-11-04 08:43:00 +0000 |
---|---|---|
committer | irina <irinagomez@us.es> | 2014-11-04 08:43:00 +0000 |
commit | 81ae95c44b8f6661f8a5af5078f1de5d9e4c67e4 (patch) | |
tree | 052b860655af45336b4943d8621c601e53b84481 /admin/Sources/Services/ogAdmRepoAux | |
parent | bf365a4ca84e2f396165a07f2fb594ede640f027 (diff) |
#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-378ad31fedc9
Diffstat (limited to 'admin/Sources/Services/ogAdmRepoAux')
-rwxr-xr-x | admin/Sources/Services/ogAdmRepoAux | 76 |
1 files changed, 36 insertions, 40 deletions
diff --git a/admin/Sources/Services/ogAdmRepoAux b/admin/Sources/Services/ogAdmRepoAux index 4cb4ff36..76c61271 100755 --- a/admin/Sources/Services/ogAdmRepoAux +++ b/admin/Sources/Services/ogAdmRepoAux @@ -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 - fi + 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 + # 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 else umount $DIRMOUNT || (echolog "Error al desmontar la imagen $IMGFILE"; exit 1) fi |