martes, 3 de enero de 2012

Shell Script Visitas a web de máquinas externas

#!/bin/bash

#*Ejercicio 11.* Un administrador de sistema quiere saber si hay accesos a
#su servidor Web desde máquinas desconocidas. Para ello dispone de un
#archivo de log accesos.log cuyo primer campo, separado por blancos, es el
#nombre de una máquina o su número IP, indistintamente; luego otros dos
#campos, luego fecha y página solicitada. La lista de máquinas de su propio
#dominio se encuentran en el archivo /etc/hosts. Escribir un script que
#muestre los nombres o números IP de máquinas que accedieron el Web y la
#fecha, omitiendo las máquinas del propio dominio.  Recordar que el archivo
#/etc/hosts puede tener comentarios, y que accesos.log tiene varios campos.

if [ $# -gt 1  ] #comprobar número de parámetros introducidos
then          #gracias a Alejandro por sus buenas formas
    echo "¡¡Horror!! Uso "$0" "
    exit
fi

cat /etc/hosts | grep ^[^#.] | awk -F"[ \t]" '{print $1 }' > hosts.txt

while read linea
do
    servidor=`echo $linea | cut -d" " -f1`
    fecha=`echo $linea | cut -d" " -f4`
    #echo $servidor
    grep $servidor hosts.txt &>/dev/null
    if [[ $? != 0 ]]
    then
        echo "$servidor $fecha"
    fi
done < accesos.log

No hay comentarios:

Publicar un comentario