summaryrefslogtreecommitdiffstats
path: root/admin/Sources/Services/ogAdmRepoAux
diff options
context:
space:
mode:
authoririna <irinagomez@us.es>2014-11-04 08:43:00 +0000
committeririna <irinagomez@us.es>2014-11-04 08:43:00 +0000
commit81ae95c44b8f6661f8a5af5078f1de5d9e4c67e4 (patch)
tree052b860655af45336b4943d8621c601e53b84481 /admin/Sources/Services/ogAdmRepoAux
parentbf365a4ca84e2f396165a07f2fb594ede640f027 (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-xadmin/Sources/Services/ogAdmRepoAux76
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