On Friday 19 August 2011 11:03:05 am Denis wrote:
> de como hacerlo. Podrian poner aca el código fuente de un script que  
> haga algo como lo que explicaste, que lea un archivo y si encuentra  
> alguna serie de palabras, etc... envie un correo?
> Eso nos ayudaría mucho

corran el script como   ./script &
pues el script crea un while infinito que no se rompe nunca por lo cual si no 
ponen el & el sistema no te devolvera el shell

*********************

#!/bin/bash
#cat clamav.log | grep FOUND$ | awk '{print $8}'

#Busca en el archivo clamav.log las entradas relacionadas con virus y 
# en dependencia del archivo de configuracion, borra los virus 
# o los mueve a cuarentena
#La ventana de informacion requiere el paquete zenity

#Crear directorio cuarentena
quarantine_dir=/var/lib/clamav/quarantine

#Donde leer en busca de virus y donde escribir lo que se hace
#log=clamav.log
log=/var/log/clamav/clamav.log


if [ ! -d $quarantine_dir ]; then
        mkdir $quarantine_dir
        chmod 600 $quarantine_dir
        chown root.root $quarantine_dir
fi

do_find=1

# mover los virus a cuarentena, de lo contrario se borran
quarantine=0

# notificar al usuario
# pendiente a programar

while [ $do_find -eq 1 ]
do
        #Reviso los logs en busca de virus
                        
        if [ ! -z `tail -n 1 $log | grep FOUND$ | awk '{print $1}'`  ];then
                
                #virus encontrado, seleccionar el camino y tomar una accion     
                # si el virus lo detecta clamuko el camino aparece en el campo 8
                # si lo detecta clamdscan el camino aparece en el campo 7
                # si el virus lo detecta clamscan los logs no reportan nada..
                
                # si en la linea aparece la palabra Clamuko, se lee el campo 8
                # de lo contrario se lee el 7
                path=`tail -n 1 $log | grep FOUND$ | awk '{print $7}' | cut -d: 
-f1`

                if [ $path  = Clamuko ]; then
                        #virus detectado por clamuko, leer el campo siguiente
                        path=`tail -n 1 $log | grep FOUND$ | awk '{print $8}' | 
cut -d: -f1`
                fi
                #path=`tail -n 1 $log | grep FOUND$ | awk '{print $8}' | cut 
-d: -f1`
                #path=`tail -n 1 $log | grep FOUND$ | awk '{print $7}' | cut 
-d: -f1`

                #notificar al usuario y pedir una accion (pendiente)
                if [ $quarantine -eq 1 ]; then
                        mv $path $quarantine_dir
                        #Encriptar el archivo en cuarentena
                        echo "`date`: -> El fichero $path se movio al 
directorio de cuarentena" >> 
$log
                        #/usr/bin/zenity --warning --title="Clamuko" --text="El 
fichero $path se 
movio a cuarentena porque tiene virus!" &       
                        echo "$path 1"> /tmp/alert.clamav
                else
                        #borrar virus, no se selecciono mover a cuarentena
                        rm -f $path
                        echo "`date`: -> El fichero $path fue borrado porque 
tenia un virus" >> 
$log 
                        #/usr/bin/zenity --warning --title="Clamuko" --text="El 
fichero $path sera 
borrado porque tiene virus!" &
                        echo "$path 0" > /tmp/dazuko/alert.clamav
                        chmod 666 /tmp/dazuko/alert.clamav
                fi
        #else
        #       echo "sin virus"
        fi
#tail -n 1 $log | grep FOUND$ | awk '{print $8}'
sleep 0.2


done

exit 0



-- 
Salu2 
 ________________________
 Ulinx
 Administrador de redes
 Ministerio de Finanzas y Precios
 Linux user 366775
"En un problema con n ecuaciones
siempre habrá al menos n+1 incógnitas."


______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l

Responder a