From 5b521cbaff9f95942e15c4281046ea5ff86a62ea Mon Sep 17 00:00:00 2001 From: albertogp Date: Thu, 18 Jul 2013 14:13:17 +0000 Subject: branches-version1.0 EliminarImagenRepositorio #564 Añadiendo funciones en fichero deleteimage Creando fichero deletepreimage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://opengnsys.es/svn/branches/version1.0@4000 a21b9725-9963-47de-94b9-378ad31fedc9 --- repoman/bin/deleteimage | 63 +++++++++++++++++++++++++++++++++++----------- repoman/bin/deletepreimage | 37 +++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 14 deletions(-) create mode 100644 repoman/bin/deletepreimage (limited to 'repoman') diff --git a/repoman/bin/deleteimage b/repoman/bin/deleteimage index 67a3e88c..e66243ed 100755 --- a/repoman/bin/deleteimage +++ b/repoman/bin/deleteimage @@ -1,12 +1,13 @@ #!/bin/bash -# deleteimage [ -b | -r ] str_image +# deleteimage [ -b | -r | i ] str_image #@file deleteimage #@brief Borra del repositorio los ficheros de una imagen. #@param -b Elimina también la copia de seguridad de la imagen (opcional). #@param -r Recupera la copia de seguridad de la imagen (opcional). +#@param -i Elimina imagen Incremental o Basica #@param str_image Nombre canónico de la imagen, sin extensión. -#@version 1.0 -#@date 2012-10-14 +#@version 1.2 +#@date 2013-07-17 #@author Ramón Gómez, ETSII Univ. Sevilla @@ -15,39 +16,37 @@ OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"} OGIMG=$OPENGNSYS/images IMGEXT="img" BAKEXT="ant" - +DIFFEXT="diff" + # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then cat << EOT $PROG: Borra los ficheros de una imagen del repositorio. -Formato: $PROG [ -b | -r ] str_image +Formato: $PROG [ -b | -r | -i ] str_image -b Elimina también la copia de seguridad de la imagen. -r Recupera la copia de seguridad de la imagen. + -i Elimina imagen Incremental o Basica Ejemplo: $PROG imagen1 EOT exit 0 fi + # Procesar parámetros -while getopts br OPTION; do +while getopts bri OPTION; do case $OPTION in b) DELETEBACKUP=1 ;; r) RECOVERBACKUP=1 ;; + i) DELETEINCREMEN=1 ;; *) ERR=1 ;; esac shift $((OPTIND-1)) done -[ -n "$DELETEBACKUP" ] && [ -n "$RECOVERBACKUP" ] && ERR=1 +[ -n "$DELETEBACKUP" ] && [ -n "$RECOVERBACKUP" ] && [ -n "$DELETEINCREMEN" ] && ERR=1 if [ $# != 1 -o -n "$ERR" ]; then - echo "$PROG Error: Formato: $PROG [ -b | -r ] str_image" + echo "$PROG Error: Formato: $PROG [ -b | -r | -i ] str_image" exit 1 fi -# Fichero principal de la imagen. -IMGFILE="$OGIMG/$1.$IMGEXT" - -# Eliminar ficheros de la imagen. -rm -f $IMGFILE && rm -f $IMGFILE.{sum,torrent} - # Recuperar copia de seguridad de la imagen. if [ -n "$RECOVERBACKUP" ]; then mv -f $IMGFILE.$BAKEXT $IMGFILE && \ @@ -60,3 +59,39 @@ if [ -n "$DELETEBACKUP" ]; then rm -f $IMGFILE.$BAKEXT && rm -f $IMGFILE.{sum,torrent}.$BAKEXT fi +# Borrar directorio de imagen +IMGFILECA="$OGIMG/$1" +if [ -n "$DELETEINCREMEN" ];then +rm -R $IMGFILECA && exit +fi + +# Si el Nombre canonico es un directorio eliminamos +# o si la opcion es i tambien eliminamos +IMGFILECA="$OGIMG/$1" +if [ -d "$IMGFILECA" ];then +rm -R $IMGFILECA +# Si el Nomobre canonico NO es un directorio +else + # Comprobamos si es un archivo backup .ant + NOMBREANT=$(echo $1 | awk -F. '{print $1}') + if [ $1 == "$NOMBREANT.$BAKEXT" ]; then + IMGFILE="$OGIMG/$NOMBREANT.$IMGEXT.$BAKEXT" + # Eliminar fichero de seguridad .img.ant + rm -f $IMGFILE + else + # Comprobamos si es un archivo diferencial .diff + NOMBREDIF="$OGIMG/$1.$IMGEXT.$DIFFEXT" + if [ -f $NOMBREDIF ]; then + IMGFILE="$OGIMG/$1.$IMGEXT.$DIFFEXT" + # Eliminar fichero diferencial .diff .torrent .sum + rm -f $IMGFILE && rm -f $IMGFILE.{sum,torrent} + + else + # Fichero principal de la imagen. + IMGFILE="$OGIMG/$1.$IMGEXT" + # Eliminar ficheros de la imagen. + rm -f $IMGFILE && rm -f $IMGFILE.{sum,torrent} + fi + fi + +fi \ No newline at end of file diff --git a/repoman/bin/deletepreimage b/repoman/bin/deletepreimage new file mode 100644 index 00000000..820ffeed --- /dev/null +++ b/repoman/bin/deletepreimage @@ -0,0 +1,37 @@ +#!/bin/bash +# Eliminar las imagenees del repositiro seg�raca de la onsola web .img +#Version 0.3 Ejecuci�n desde cron cada minuto,o. +#echo "* * * * * root /opt/opengnsys/bin/image-delete" > /etc/cron.d/imagedelete + +# Comprobar si el proceso ya est� en ejecuci�n.on. +PROG=$(basename $0) +[ "$(pgrep "$PROG")" != "$$" ] && exit + +# Variables. +OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"} +PATH=$PATH:$OPENGNSYS/bin +OGIMG="$OPENGNSYS/images" +REPOCFG="$OPENGNSYS/etc/ogAdmRepo.cfg" +LOGFILE="$OPENGNSYS/log/$PROG.log" + +# Error si no est� bien configurado el repositorio de im�genes.nes. +[ -d $OGIMG -a -f $REPOCFG ] || exit 1 + +# Procesar ficheros de im�genes.s. +trap 'echo "`date` : Proceso interrumpido" >> $LOGFILE; exit ' 1 2 3 6 9 15 + +#TODO en LOCAL: si existe algun fichero *.delete lo movemos al repositorio +ls /opt/opengnsys/www/tmp/*.delete &>/dev/null || exit +#[ -f /opt/opengnsys/www/tmp/*.delete ] && +mv /opt/opengnsys/www/tmp/*.* /opt/opengnsys/images/ + +#TODO: iniciar blucle siempre y cuando haya algun delete +ls /opt/opengnsys/images/*.delete &>/dev/null || exit + +for IMG in `ls /opt/opengnsys/images/*.delete`; do + DELETEIMAGE=$(echo $IMG | awk -F"." '{print $1}' | awk -F"/opt/opengnsys/images/" '{print $2}') + # Borramos marca .delete para que el proximo cron no trabaje sobre este conjunto. + [ -f $IMG ] && rm $IMG + ## se llama al escript de borrado de imagen. + /opt/opengnsys/bin/deleteimage $DELETEIMAGE +done -- cgit v1.2.3-18-g5258