====== Script para actualizar las bases del Antivirus y el Smart Security de ESET en Debian ======
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.
===== El archivo de script =====
#!/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
#
# 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
===== Si se utiliza un proxy ======
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.