shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Monitorar logs


From: Fabiano Caixeta Duarte
Subject: Re: [shell-script] Monitorar logs
Date: Mon, 6 Jul 2009 17:21:08 -0300

2009/7/3 Daniel Fernando Coimbra <address@hidden>:
> Olá pessoal, estou fazendo um pequeno script para monitorar as entradas
> de log feitas pelo iptables. Quando executo o script para testar nos
> logs já existentes (removendo o "tail" e complementando o "grep" com o
> caminho do arquivo) a execução é perfeita e me dá as informações como
> esperado. No entanto, ao executá-lo como segue abaixo, para que a
> monitoração seja em "tempo real" não há qualquer saída, embora os logs
> estejam sendo modificados.
>
> Não há qualquer aviso de erros na execução e não faço idéia do que pode
> estar errado! Os logs estão sendo gerados e contém as strings "Firewall
> - ${INFO}:", suspeito que o meu uso do "tail -f" esteja errado mas não
> consegui descobrir qual seria a correção...
>
> Agradeço muito se puderem me auxiliar.
>
>
> (o arquivo color-definitions.sh contém apenas definição de variáveis com
> strings de cores e por isso não o inclui)
>
> ---- monitor.sh ----
>
> source color-definitions.sh
> U='\e[4m'
>
> sudo echo "Iniciando Monitor... `date`" || exit 1
>
> sudo tail -n 0 --follow=name /var/log/syslog | grep Firewall | while
> read Mon Day Time Host lixo lixo lixo LOGNAME DEV_IN DEV_OUT MAC SRC DST
> LEN TOS PREC TTL ID LINELOG
> do
>    TIMELINE=" @$Time-$Day/$Mon"
>    PROTO=`echo $LINELOG | cut -d= -f2 | cut -d' ' -f1`
>    S=`echo $SRC | cut -d= -f2`
>    SP=`echo $LINELOG | cut -d= -f3 | cut -d' ' -f1`
>    D=`echo $DST | cut -d= -f2 | cut -d' ' -f1`
>    DP=`echo $LINELOG | cut -d= -f4 | cut -d' ' -f1`
>    LINE=$(echo $LINELOG | cut -d= -f6- | cut -d' ' -f2 | tr -d ' ')
>    case $LOGNAME in
>        'PING:')
>            if [ "$S" == "192.168.0.1" ]
>            then
>                C=$LGREEN
>            else
>                C=$YELLOW
>            fi
>            echo -e "${RED}PING${NORM} from ${C}${S}${NORM}$TIMELINE"
>            ;;
>        'SPOOFING:')
>            echo -e "${YELLOW}${U}SPOOFING${NORM} $S:$SP:$DP:D 
> ${LINE}$TIMELINE"
>            ;;
>        'INPUT:')
>            if [ "`echo $D | cut -d. -f4`" == "255" ]
>            then
>                if [ "$S" == "0.0.0.0" ]
>                then
>                    S=`echo $MAC | cut -d: -f7-`
>                fi
>                MSG="${BROWN}BROADCAST${NORM} from ${U}${S}"
>            else
>                MSG="${BLUE}INPUT${NORM} from ${U}${S}"
>            fi
>            echo -e "${MSG}${NORM} ${PROTO}
> ${YELLOW}${SP}${NORM}:${YELLOW}${DP}${NORM} ${LINE}$TIMELINE"
>            ;;
>        *)
>        echo INVALID ENTRY $LINE $TIMELINE
>    esac
> done &
>
> sudo tail -n 0 --follow=name /var/log/messages | grep Firewall | grep -v
> sudo | while read Mon Day Time Host lixo lixo lixo LOGNAME DEV_IN
> DEV_OUT MAC SRC DST LEN TOS PREC TTL ID LINELOG
> do
>    PROTO=`echo $LINELOG | cut -d= -f2 | cut -d' ' -f1`
>    S=`echo $SRC | cut -d= -f2`
>    SP=`echo $LINELOG | cut -d= -f3 | cut -d' ' -f1`
>    D=`echo $DST | cut -d= -f2`
>    DP=`echo $LINELOG | cut -d= -f4 | cut -d' ' -f1`
>    TIMELINE=" @$Time-$Day/$Mon"
>    LINE=$(echo $LINELOG | cut -d= -f6- | cut -d' ' -f2 | tr -d ' ')
>
>    if [ "`echo $D | cut -d. -f4`" == "255" ]
>    then
>        MSG="${BROWN}BROADCAST${NORM}"
>        if [ "$S" == "0.0.0.0" ]
>        then
>            S=`echo $MAC | cut -d: -f7-`
>        fi
>        MSG="${MSG} from ${U}${S}"
>    else
>        case $LOGNAME in
>            'LOCALINPUT:')
>                MSG="LOCAL from ${U}${S}"
>                ;;
>            'SERVICES:')
>                MSG="${LGREEN}SERVICES${NORM} from ${U}${S}"
>                ;;
>            *)
>        esac
>    fi
>
>    echo -e "${MSG}${NORM} ${PROTO}
> ${YELLOW}${SP}${NORM}:${YELLOW}${DP}${NORM} ${LINE}$TIMELINE"
> done &
>
> while :
> do
>    sleep 6h
>    echo ---- `date` ----
> done
>
> ---- monitor.sh ----
>


http://br.groups.yahoo.com/group/shell-script/message/15208

-- 
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP


reply via email to

[Prev in Thread] Current Thread [Next in Thread]