#657 ogReduceImagen: para ogclient 1.0.5 (BTRFS) desmonta la imagen
git-svn-id: https://opengnsys.es/svn/branches/version1.0@4351 a21b9725-9963-47de-94b9-378ad31fedc9remotes/github/debian-pkg
parent
3dc839680d
commit
d34255f08f
|
@ -239,45 +239,48 @@ case "$PARM1" in
|
|||
LOCKFILE="$IMGFILE.lock"
|
||||
[ ! -f $IMGFILE ] && echolog "Imagen $IMGFILE no existe" && exit 1
|
||||
|
||||
# Solo funciona si la imagen es ext4, si no nos salimos sin error
|
||||
file $IMGFILE |grep -i -e " ext4 filesystem " 2>&1 > /dev/null || exit 0
|
||||
# Para imagenes EXT4 reduzco, para BTRFS solo desmonto.
|
||||
if file $IMGFILE |grep -i -e " ext4 filesystem " 2>&1 > /dev/null ; then
|
||||
|
||||
[ -d $DIRMOUNT ] || mkdir $DIRMOUNT
|
||||
mountImage "$IMGFILE" "$DIRMOUNT" || (echolog "Error al montar la imagen $IMGFILE"; exit 1)
|
||||
[ -d $DIRMOUNT ] || mkdir $DIRMOUNT
|
||||
mountImage "$IMGFILE" "$DIRMOUNT" || (echolog "Error al montar la imagen $IMGFILE"; exit 1)
|
||||
|
||||
# Si el espacio libre menor que 500Mb desmontamos la imagen y nos salimos
|
||||
AVAILABLE=$(df -k|grep $DIRMOUNT|awk '{print $4}')
|
||||
if [ $AVAILABLE -lt 200000 ]; then
|
||||
# Si el espacio libre menor que 200Mb desmontamos la imagen y nos salimos
|
||||
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
|
||||
|
||||
# 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
|
||||
|
||||
# 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
|
||||
rmdir $DIRMOUNT
|
||||
echo "reduced" >$LOCKFILE
|
||||
|
||||
|
|
|
@ -710,10 +710,10 @@ fi
|
|||
IMGDIR="$(ogGetParentPath "$1" "/$2")"
|
||||
IMGFILE="${IMGDIR}/$(basename "/$2").$IMGEXT"
|
||||
|
||||
# Solo es posible para imagenes EXT4. Si no es EXT4 salimos sin error
|
||||
file "$IMGFILE" | grep -i " ext4 filesystem " 2>&1 > /dev/null || return 0
|
||||
|
||||
if [ "$1" == "CACHE" -o "$1" == "cache" ]; then
|
||||
# Para imagenes EXT4 reduzco, para BTRFS solo desmonto.
|
||||
if file "$IMGFILE" | grep -i " ext4 filesystem " 2>&1 > /dev/null; then
|
||||
# Al montar se comprueba la existencia de la imagen
|
||||
DIRMOUNT="$(ogMountImage $1 "$2" ${IMGEXT#*\.})"
|
||||
AVAILABLE=$(df -k|grep "$DIRMOUNT$"|awk '{print $4}')
|
||||
|
@ -748,10 +748,13 @@ if [ "$1" == "CACHE" -o "$1" == "cache" ]; then
|
|||
# Corto el archivo al tamaño del sistema de ficheros.
|
||||
echo " truncate --size=\"$EXTSIZE\"k $IMGFILE "
|
||||
truncate --size="$EXTSIZE"k "$IMGFILE"
|
||||
|
||||
else
|
||||
# Desmonto la imagen
|
||||
echo "reduced" > "$IMGFILE.lock"
|
||||
rmdir "$DIRMOUNT"
|
||||
umount "$DIRMOUNT"
|
||||
fi
|
||||
|
||||
echo "reduced" > "$IMGFILE.lock"
|
||||
rmdir "$DIRMOUNT"
|
||||
|
||||
else
|
||||
[ -z $REPOIP ] && REPOIP=$(ogGetRepoIp)
|
||||
|
|
Loading…
Reference in New Issue