En este artículo explicaremos como crear un script que nos permita actualizar nuestras bases de ESET Nod32 Antivirus y Smart Security. A diferencia de otras maneras de actualizar, con esta se descargarán solamente los archivos nuevos. Con esto nos ahorramos las molestias de descargar todos los archivos desde el principio.
#!/bin/bash ################################################################################################## # ESETMirror v1.2 # # Este programa es software libre. Puede redistribuirlo y/o # modificarlo bajo los terminos de la Licencia Polica General # de GNU segun es publicada por la Free Software Foundation, # bien de la version 2 de dicha Licencia o bien segun su # eleccion de cualquier version posterior. # # Copyright (C) 2012, DPJ Cienfuegos # Authors: Exnier Gonzalez Jimenez <adminred@dpjcf.minjus.cu> # # Descripcion # -- # Este script basado en "lftp" funciona con sitios FTP y HTTP, Util para hacer espejos # de actualizaciones de antivirus sin necesidad de descargar todo desde el principio. # # Necesita poner una línea en su crontab. # Para comenzar la descarga cada 1 hora del espejo. # 00 */1 * * * /opt/eset/esetmirror.sh # # NOTA: Requerimientos # * "lftp(1)" Paquete lftp (Sophisticated command-line FTP/HTTP client programs) # * "zip(2)" Paquete zip (Archiver for .zip files) # # # Cambios: # - 15/05/2012 v1.2 Crear Archivo de Informacion y actualizaciones semanales # - 27/11/2010 v1.1 Crear compactado con la Actualizacion # - 26/11/2010 v1.0 Primera version del NodMirror # ################################################################################################## # Definir Rutas UPDATE="/var/www/antivirus" # Ruta destino de la actualizacin ZIP="$UPDATE/zip/" # Ruta para los compactados TMPDIR="/opt/esetmirror" # Ruta temporal de trabajo SERVER="http://10.16.11.125/antivirus/nod32v3/" # Servidor de Actualizacion # Opciones de lftp OPCIONES="-c 10 --no-recursion --exclude="ess" --exclude="eav" --exclude="tmp" --exclude="test" --exclude="html" --exclude="info.txt" --log=$TMPDIR/update.log" # Crear directorios if ! [ -d $UPDATE ]; then mkdir -p $UPDATE $ZIP $TMPDIR $TMPDIR/semanal $TMPDIR/completa fi if ! [ -d $TMPDIR ]; then mkdir -p $TMPDIR $TMPDIR/semanal $TMPDIR/completa fi if [ -d $TMPDIR ]; then cp $UPDATE/nod32v3/* $TMPDIR/completa/nod32v3 lftp -c mirror $SERVER $TMPDIR/completa/nod32v3 $OPCIONES fi # Borrando actualizacion anterior rm -f $ZIP/* # Compactar nueva actualizacion completa cd $TMPDIR/completa zip -r -9 -q "completa-$(date +'%Y%m%d').zip" * mv *.zip $ZIP cp -a $TMPDIR/completa/nod32v3 $UPDATE # Copiar update para crear la semanal cp -a $TMPDIR/completa/* $TMPDIR/semanal #Borar en tmp de + de 7 dias find $TMPDIR/semanal/nod32v3/* -mtime +15 -exec rm {} \; #Compactar actualizacion Semanal cd $TMPDIR/semanal zip -r -9 -q "semanal-$(date +'%Y%m%d').zip" * mv *.zip $ZIP rm -R $TMPDIR/semanal/* # Crear archivo de informacion cat << EOF > "$UPDATE/info.txt" ESETmirror v1.2 By Squall =-=-=-=-=-=-=-=-=-= Nombre: Actualizacion ESET Nod32 Desde: $SERVER Fecha: $(date +'%d-%m-%Y') Hora: $(date +'%R') Actualizacion Completa "zip/completa-$(date +'%Y%m%d').zip" Actualizacion Semanal "zip/semanal-$(date +'%Y%m%d').zip" -- ---------- Departamento de Redes y Comunicaciones. DPJ Cienfuegos Ave 52 # 2704 e/ 27 y 29 Cienfuegos, Cuba, CP 55100 EOF exit 0
Ah, muy importante: si se utiliza un proxy para acceder a internet tiene que modificarse el archivo '/etc/lftp.conf':
sudo nano /etc/lftp.conf
Modificamos la línea que contiene la cadena 'set http:proxy':
# http:proxy must comunicate with client over http protocol, e.g. squid. ## Default port is 3128 # set http:proxy your_http_proxy[:port] set http:proxy 200.55.161.251:3128 --lo ponemos de esta forma si el servidor proxy no requiere autentificación set http:proxy http://user:pass@200.55.161.251:3128 --lo ponemos de esta forma si el servidor proxy requiere autentificación.