#!/bin/bash

# Nod32 Updater ver1.2
# Script para actualizar las bases del Nod32 v3 y v4.
# Modificado y mejorado por: Carlos M Bustillo Rdguez. email: cbustillo@uclv
edu.cu
# En caso de que su conexion sea por un proxy sustituir --no-proxy por:
#              --proxy-user=nombre --proxy-password=el_pass
# JCCE Ranchuelo I, Villa Clara, Cuba.

# Declaracion de las funciones a emplear
function FIN {
  cd ..
  mv .$directorio $directorio
  exit
}

# Definicion de variables empleadas...
# Fecha del dia, utilizada para generar el log
fecha=`date +'%d%m%y'`

# Ruta del directorio donde desea guardar las bases de los AV
ruta='/var/www/ftp/Antivirus/updates'

# Nombre del directorio donde desea guardar las bases del Nod32
directorio='Nod32_V3'

# Ruta del directorio donde desea guardar el log de actualizacion para Nod32
rutalogs='/var/www/ftp/Antivirus/updates/logs'

# Servidores de origen de las bases (sin '/' al final)
#UrlServer='http://www.hab.jovenclub.cu/ftp/actualizacion/nod32/V3.0'
#UrlServer='http://www.olderan.net/nod3'
#UrlServer='http://antivirus.uclv.edu.cu/update/nod32/nod_upd3'
#UrlServer='http://192.168.24
27/ftp/Antivirus/actualizaciones/nod_update/bases'
#UrlServer='http://ftp.pri.jovenclub
cu/Windows/Antivirus/Actualizaciones/Nod32/version4'
#UrlServer='http://antivirus.mtz.jovenclub.cu/updates/nod4'
UrlServer='http://10.12.57.6/prob_update/Nod32_V3'

# Borrando el log antiguo
if [ -e $rutalogs/nod*.log ]; then rm -f $rutalogs/nod*.log; fi

# Accediendo a la carpeta de las actualizaciones
cd $ruta

# Ocultando el directorio del Nod32 para que no se acceda mientras se esta
# actualizando el repositorio
mv $directorio .$directorio

# Accediendo al directorio donde esta la actualizacion del nod32
cd .$directorio

# Renombrando el fichero update.ver viejo, para que luego sea comparado
# con el que se descargara nuevo
cp --preserve update.ver old-update.ver

# Descargando el update.ver del sitio de actualizacion, si esta disponible
se procede
# a la descarga de las bases de lo contrario no se hace nada
if wget --no-proxy -v -t0 -N $UrlServer/update.ver -o $rutalogs/nod32_$fecha
log  ;then

# Comparando que el fichero nuevo update.ver es valido y es mas nuevo que
old-update.ver, si es asi se procede a actualizar
# de lo contrario se va a FIN
if [ -s update.ver ] && [ update.ver -nt old-update.ver ]; then
# Borrando el Nod32_V3 compactado para que no se pueda acceder hasta que se
termine la actualizacion
if [ -e ../$directorio.tar.gz ]; then rm -f ../$directorio.tar.gz; fi

# Extrayendo los archivos .nup y .mod de update.ver, el sed lo que hace es
eliminar el carac ^ al final de la linea
cat update.ver |sed 's/\r//'| grep file | grep .nup | cut -d = -f 2  >>
files.txt
cat update.ver |sed 's/\r//'| grep file | grep .mod | cut -d = -f 2  >>
files.txt

# El for que viene a continuacion recorre cada una de la lineas de files.txt
y
# se van almacenando en la variable name para descargar los ficheros nuevos
for name in `cat files.txt`; do
  wget --no-proxy -t0 -N $UrlServer/$name -a $rutalogs/nod32_$fecha.log
done

rm -f files.txt
if [ -e old-update.ver ]; then rm -f old-update.ver; fi

# Ajustando los atributos y salvando el logs
echo 'Ajustando los atributos y salvando el log' >> $rutalogs/nod32_$fecha
log
chmod -R 755 *.* >> $rutalogs/nod32_$fecha.log
cd ..

# Compactando la actualizacion
echo 'Compactando la actualizacion' >> $rutalogs/nod32_$fecha.log
mv .$directorio $directorio
tar -zcvf .$directorio.tar.gz $directorio/ >> $rutalogs/nod32_$fecha.log
mv .$directorio.tar.gz $directorio.tar.gz
echo 'Terminado. Estableciendo permisos...' >> $rutalogs/nod32_$fecha.log
chmod 755 $directorio.tar.gz
exit
else
 if [ -e old-update.ver ]; then rm -f old-update.ver; fi
 echo 'No es necesario actualizar las bases...' >> $rutalogs/nod32_$fecha
log
 FIN
fi
# fi del if que comprueba el update.ver en cuanto a timestamp

# else del if que chequea que esta diponible le fichero update.ver
else
 mv old-update.ver update.ver
 echo 'ERROR! no se ecuentra disponible el servidor de origen:' >>
$rutalogs/nod32_$fecha.log
 echo $UrlServer >> $rutalogs/nod32_$fecha.log
 FIN
fi
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: 
<http://listas.jovenclub.cu/pipermail/gutl-l/attachments/20111124/c907ec2d/attachment.htm>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/gif
Size: 34729 bytes
Desc: no disponible
URL: 
<http://listas.jovenclub.cu/pipermail/gutl-l/attachments/20111124/c907ec2d/attachment.gif>
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l

Responder a