blob: 21d585816826cb94c87b3004a2597d02b590cf57 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#!/bin/bash
# Genera los ficheros .torrent de las imágenes almacenadas en el repositorio.
#Version 0.3 Ejecución desde cron cada minuto,
## echo "* * * * * root /opt/opengnsys/bin/torrent-creator" > /etc/cron.d/torrentcreator
## ver moficifcacione en linea 41 - 46
# Comprobar si el proceso ya está en ejecución.
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.
[ -d $OGIMG -a -f $REPOCFG ] || exit 1
source $REPOCFG
TRACKERURL="http://$IPlocal:6969/announce"
# Directorio de imágenes.
pushd $OGIMG >/dev/null
# Procesar ficheros de imágenes.
trap 'echo "`date` : Proceso interrumpido" >> $LOGFILE; exit ' 1 2 3 6 9 15
for IMG in *.{img,pgz}; do
# Saltar al siguiente si la imagen está bloqueada o si no existe el fichero.
LOCKFILE="$IMG.lock"
if [ -f "$LOCKFILE" -o ! -f "$IMG" ]; then
continue
fi
# Comprobar si ya existe el fichero Torrent para esa imagen.
TORRENT="$IMG.torrent"
SUMFILE="$IMG.sum"
if [ -f "$TORRENT" ]; then
FILESIZE="$(ls -l $IMG | awk '{print $5}')"
read -e TORRFILE TORRSIZE <<<"$(ctorrent -x $TORRENT | awk '$1~/<1>/ {print $2,$3}')"
[ "$(basename $IMG)" = "$TORRFILE" -a "[$FILESIZE]" = "$TORRSIZE" ] && continue
fi
# Bloquear imagen, crear ficheros Torrent y Checksum y desbloquear imagen.
echo "`date` : Inicio creación de fichero $TORRENT" >> $LOGFILE
touch "$LOCKFILE"
trap "rm -f $LOCKFILE" 1 2 3 6 9
rm -f "$TORRENT" "$SUMFILE"
DATASUM=`md5sum "$IMG" | cut -f1 -d" "`
echo $DATASUM > "$SUMFILE"
nice -8 ctorrent -t "$IMG" -u $TRACKERURL -s "$TORRENT" -c $DATASUM
rm -f "$LOCKFILE"
if [ -f "$TORRENT" ]; then
echo "`date` : Fin creación de fichero $TORRENT" >> $LOGFILE
else
echo "`date` : ERROR en creación de fichero $TORRENT" >> $LOGFILE
fi
done
popd >/dev/null
|