diff options
author | ramon <ramongomez@us.es> | 2015-05-29 07:34:07 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2015-05-29 07:34:07 +0000 |
commit | de687e3ba82883fa561b00bca0dbd0a73b6ee2d5 (patch) | |
tree | 617373349e83966c6914cb4f49980dcc0f90fc88 /repoman | |
parent | e589e1def0bea3c39e7691283a2ea13e170d84cd (diff) |
#673: Integrar código de la versión 1.0.6 en rama principal.
git-svn-id: https://opengnsys.es/svn/trunk@4641 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'repoman')
-rwxr-xr-x | repoman/bin/deleteimage | 91 | ||||
-rwxr-xr-x | repoman/bin/deletepreimage | 2 | ||||
-rwxr-xr-x | repoman/bin/torrent-creator | 14 | ||||
-rwxr-xr-x | repoman/bin/torrent-tracker | 6 |
4 files changed, 51 insertions, 62 deletions
diff --git a/repoman/bin/deleteimage b/repoman/bin/deleteimage index 3807b841..f208fb9b 100755 --- a/repoman/bin/deleteimage +++ b/repoman/bin/deleteimage @@ -1,17 +1,19 @@ #!/bin/bash -# deleteimage [ -b | -r | -i ] str_image +# deleteimage [ -b | -r ] 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 - Versión inicial. #@date 2012-10-14 #@author Ramón Gómez, ETSII Univ. Sevilla -#@version 1.2 - Eliminar imagen incremental. +#@version 1.0.5 - Eliminar imagen incremental. #@date 2013-07-17 #@author Alberto García, Univ. Málaga +#@version 1.0.6 - Detección automática del tipo de imagen. +#@date 2014-10-29 +#@author Ramón Gómez, ETSII Univ. Sevilla PROG=$(basename $0) @@ -25,80 +27,61 @@ DIFFEXT="diff" if [ "$*" == "help" ]; then cat << EOT $PROG: Borra los ficheros de una imagen del repositorio. -Formato: $PROG [ -b | -r | -i | -d ] str_image +Formato: $PROG [ -b | -r ] 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 - -d Elimina Directorios Ejemplo: $PROG imagen1 EOT exit 0 fi - # Procesar parámetros -while getopts brid OPTION; do +while getopts br OPTION; do case $OPTION in b) DELETEBACKUP=1 ;; r) RECOVERBACKUP=1 ;; - i) DELETEINCREMEN=1 ;; - d) DELETEDIRECTORIO=1 ;; *) ERR=1 ;; esac shift $((OPTIND-1)) done - -[ -n "$DELETEBACKUP" ] && [ -n "$RECOVERBACKUP" ] && [ -n "$DELETEINCREMEN" ] && [ -n "$DELETEDIRECTORIO" ] && ERR=1 +[ -n "$DELETEBACKUP" ] && [ -n "$RECOVERBACKUP" ] && ERR=1 if [ $# != 1 -o -n "$ERR" ]; then - echo "$PROG Error: Formato: $PROG [ -b | -r | -i | -d ] str_image" + echo "$PROG Error: Formato: $PROG [ -b | -r ] str_image" exit 1 fi +# Eliminar ficheros de imagen monolítica o sincronizada básica. +IMGPATH="$OGIMG/$1.$IMGEXT" +if [ -f $IMGPATH ]; then + echo "Borrando fichero $PATHDIR" + rm -f $IMGPATH && rm -f $IMGPATH.{sum,full.sum,torrent} +else + # Eliminar ficheros de imagen sincronizada diferencial. + IMGPATH="$OGIMG/$1.$IMGEXT.$DIFFEXT" + if [ -f $IMGPATH ]; then + echo "Borrando fichero $PATHDIR" + rm -f $IMGPATH && rm -f $IMGPATH.{sum,full.sum,torrent} + else + # Eliminar directorio de imagen sincronizada. + IMGPATH="$OGIMG/$1" + if [ -d $IMGPATH ]; then + echo "Borrando directorio $PATHDIR" + rm -fr $IMGPATH + fi + fi +fi + # Recuperar copia de seguridad de la imagen. if [ -n "$RECOVERBACKUP" ]; then - mv -f $IMGFILE.$BAKEXT $IMGFILE && \ - (mv -f $IMGFILE.sum.$BAKEXT $IMGFILE.sum 2>/dev/null - mv -f $IMGFILE.torrent.$BAKEXT $IMGFILE.torrent 2>/dev/null) + [ -e $IMGPATH.$BAKEXT ] && echo "Recuperando copia $IMGPATH.$BAKEXT" + mv -f $IMGPATH.$BAKEXT $IMGPATH && \ + (mv -f $IMGPATH.sum.$BAKEXT $IMGPATH.sum 2>/dev/null + mv -f $IMGPATH.full.sum.$BAKEXT $IMGPATH.full.sum 2>/dev/null + mv -f $IMGPATH.torrent.$BAKEXT $IMGPATH.torrent 2>/dev/null) fi # Borrar copia de seguridad de la imagen. if [ -n "$DELETEBACKUP" ]; then - rm -f $IMGFILE.$BAKEXT && rm -f $IMGFILE.{sum,torrent}.$BAKEXT + [ -e $IMGPATH ] && echo "Eliminando copia $IMGPATH.$BAKEXT" + rm -f $IMGPATH.$BAKEXT && rm -f $IMGPATH.{sum,full.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 [ -n "$DELETEDIRECTORIO" ]; then -rm -R $IMGFILECA && exit - -# 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 index 85883aea..39077483 100755 --- a/repoman/bin/deletepreimage +++ b/repoman/bin/deletepreimage @@ -44,7 +44,7 @@ for IMG in `ls /opt/opengnsys/images/*.delete`; do ## se llama al escript de borrado de imagen. ## Si es un Directorio Borramos if [[ $DELETEdir == "delete" ]]; then - /opt/opengnsys/bin/deleteimage -d $DELETEIMAGE + /opt/opengnsys/bin/deleteimage $DELETEIMAGE # Si es un Imagen Backup Borramos elif [[ $DELETEant == "ant" ]]; then diff --git a/repoman/bin/torrent-creator b/repoman/bin/torrent-creator index e890a958..1ede98c5 100755 --- a/repoman/bin/torrent-creator +++ b/repoman/bin/torrent-creator @@ -32,9 +32,11 @@ for IMG in *.{img,pgz,diff}; do continue fi # Comprobar si ya existe el fichero Torrent para esa imagen. - TORRENT="$IMG.torrent" + TORRENT="$IMG.torrent" SUMFILE="$IMG.sum" - if [ -f "$TORRENT" ]; then + #MD5 completo de todo el fichero imagen + SUMFULLFILE="$IMG.full.sum" + if [ -f "$TORRENT" -a -f "$SUMFULLFILE" ]; then FILESIZE="$(ls -l $IMG | awk '{print $5}')" read -e TORRFILE TORRSIZE <<<"$(ctorrent -x $TORRENT 2>/dev/null | awk '$1~/<1>/ {print $2,$3}')" [ "$(basename $IMG)" = "$TORRFILE" -a "[$FILESIZE]" = "$TORRSIZE" ] && continue @@ -43,10 +45,14 @@ for IMG in *.{img,pgz,diff}; do echo "`date` : Inicio creación de fichero $TORRENT" >> $LOGFILE touch "$LOCKFILE" trap "rm -f $LOCKFILE" 1 2 3 6 9 - rm -f "$TORRENT" "$SUMFILE" + rm -f "$TORRENT" "$SUMFILE" + # datasum de los ultimos megas del fichero para transferencias unicast y multicast DATASUM=$(tail -c1M "$IMG" | md5sum -b | cut -f1 -d" ") echo $DATASUM > "$SUMFILE" - nice -8 ctorrent -t "$IMG" -u $TRACKERURL -s "$TORRENT" -c $DATASUM -l 4194304 2>/dev/null + # Datasum completo para transferencias torrent + DATAFULLSUM=$(md5sum -b "$IMG"| cut -f1 -d" ") + echo $DATAFULLSUM > "$SUMFULLFILE" + nice -8 ctorrent -t "$IMG" -u $TRACKERURL -s "$TORRENT" -c $DATAFULLSUM -l 4194304 2>/dev/null rm -f "$LOCKFILE" if [ -f "$TORRENT" ]; then echo "`date` : Fin creación de fichero $TORRENT" >> $LOGFILE diff --git a/repoman/bin/torrent-tracker b/repoman/bin/torrent-tracker index f355b81a..7a0ac7ae 100755 --- a/repoman/bin/torrent-tracker +++ b/repoman/bin/torrent-tracker @@ -6,9 +6,9 @@ BTTRACKDFILE=/tmp/dstate BTTRACKLOG=/opt/opengnsys/log/bttrack.log BTINTERVAL=10 BTTORRENTSDIR=/opt/opengnsys/images -BTALLOW_GET=1 -#BTTRACK_OPTIONS=" --port $BTTRACKPORT --dfile $BTTRACKDFILE --reannounce_interval $BTINTERVAL --logfile $BTTRACKLOG --allowed_dir $BTTORRENTSDIR --allow_get $BTALLOW_GET --parse_allowed_interval 1" -# nuevos parametros basados en EAC 05-04-2009 antonio doblas viso. +# Desactivar descarga de torrents desde clientes no autorizados. +BTALLOW_GET=0 +# parametros basados en EAC 05-04-2009 antonio doblas viso. BTTRACK_OPTIONS=" --save_dfile_interval $BTINTERVAL --timeout_downloaders_interval $BTINTERVAL --port $BTTRACKPORT --dfile $BTTRACKDFILE --reannounce_interval $BTINTERVAL --logfile $BTTRACKLOG --allowed_dir $BTTORRENTSDIR --allow_get $BTALLOW_GET " BTTRACKPID="/var/run/bttrack.pid" BTSEEDERPID="/var/run/btseeder.pid" |