#!/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