summaryrefslogtreecommitdiffstats
path: root/repoman
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2015-05-29 07:34:07 +0000
committerramon <ramongomez@us.es>2015-05-29 07:34:07 +0000
commitde687e3ba82883fa561b00bca0dbd0a73b6ee2d5 (patch)
tree617373349e83966c6914cb4f49980dcc0f90fc88 /repoman
parente589e1def0bea3c39e7691283a2ea13e170d84cd (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-xrepoman/bin/deleteimage91
-rwxr-xr-xrepoman/bin/deletepreimage2
-rwxr-xr-xrepoman/bin/torrent-creator14
-rwxr-xr-xrepoman/bin/torrent-tracker6
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"