#!/bin/sh # segav.sh # Script de descarga de actualizaciones para Segurmática AntiVirus # Versión 0.3 (2013-07-03), Hugo Florentino # Nota: programar la ejecución como superusuario # Definir directorios SAVDIR="/opt/segurmatica" SAVACT="/var/www/segav" SAVTMP="/var/tmp/segav" # URL de la página de descargas de Segurmática SEGURL="http://www.segurmatica.cu/descargas/index.php" # URL de origen de las actualizaciones SAVURL="http://www.segurmatica.cu/descargas/actualizaciones/segavzip" # Definir cadenas y códigos de error MSAV01="Actualizador de SegAV" MSAV02="Terminada la comprobación / creación de directorios." MSAV03="Obteniendo el nombre del archivo de actualización..." MSAV04="El archivo de actualización es " MSAV05="Eliminando archivos temporales anteriores..." MSAV06="Iniciando la descarga de la actualización..." MSAV07="La actualización se descargó exitosamente." MSAV08="Eliminando directorios de actualizaciones anteriores..." MSAV09="Listo. Procediendo a extraer la actualización actual..." MSAV10="La operación ha concluido exitosamente." ESAV01="Imposible obtener el archivo de actualizaciones.\nCompruebe que hay acceso al sitio de Segurmática." ESAV02="Ocurrió algún problema durante la descarga de la actualización." ESAV03="Ocurrió algún problema al extraer la actualización." # Inicio de la ejeución echo $MSAV01 # Crear directorios si no existen mkdir -p "$SAVACT" "$SAVTMP" echo $MSAV02 # Obtener el nombre del archivo de actualización echo $MSAV03 SAVNOM=`wget -q "$SEGURL" -O- | grep "/actualizaciones/segavzip/" | sed -r "s/(.*)(\/actualizaciones\/segavzip\/)([0-9]+\.zip)(.*)/\3/"` # Si se pudo obtener el nombre: if [ ! -z $SAVNOM ]; then echo -n "$MSAV04" && echo "$SAVNOM." # Eliminar archivos de actualizaciones anteriores echo $MSAV05 find "$SAVTMP" -type f ! -name "$SAVNOM" -print0 | xargs -0 rm -f # Descargar el archivo actual de actualización echo $MSAV06 wget -c "$SAVURL/$SAVNOM" -O "$SAVTMP/$SAVNOM" -o "$SAVDIR/wget.log" # Si el archivo se descargó sin errores: if [ $? -eq 0 ]; then echo $MSAV07 # Obtener el nombre del directorio donde se va a descomprimir SAVNOMDIR=`echo "$SAVNOM" | sed -r "s/([0-9]+)\.zip/\1/"` # Eliminar directorios de actualizaciones anteriores echo $MSAV08 find "$SAVACT" -type d ! -name "$SAVNOMDIR" -print0 | xargs -0 rm -fR && echo $MSAV09 # Extraer la actualización actual unzip -o "$SAVTMP/$SAVNOM" -d "$SAVACT" && echo $MSAV10 else echo $ESAV02 fi else echo $ESAV01 fi exit 0