You are on page 1of 2

#!/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='/srv/ftp/Antivirus/nod32' # Nombre del directorio donde desea guardar las bases del Nod32 directorio='Nod32' # Ruta del directorio donde desea guardar el log de actualizacion para Nod32 rutalogs='/srv/ftp/Antivirus/nod32/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://download.jovenclub.cu/av-updates/nod32/' # 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 pr ocede # 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-up date.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 term ine 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 elimi nar el carac ^ al final de la linea cat update.ver sed 's/\r//' grep file grep .nup cut -d = -f 2 >> files.tx t cat update.ver sed 's/\r//' grep file grep .mod cut -d = -f 2 >> files.tx t # 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/nod 32_$fecha.log echo $UrlServer >> $rutalogs/nod32_$fecha.log FIN fi

You might also like