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: Daniel Fernando Coimbra
Subject: Re: [shell-script] Monitorar logs
Date: Mon, 06 Jul 2009 20:33:26 -0300
User-agent: Thunderbird 2.0.0.18 (X11/20081105)

Jeferson, você está certo nos exemplos que mostrou mas se fizer alguns
testes rápidos verá que em conjunto com a opção "-f" (--follow) isso faz
com que apenas novas linhas sejam monitoradas, ou seja, apenas aquelas
que forem adicionadas *depois* da execução de um comando como "tail -n 0
-f <arquivo>".
Eu não estaria aqui perguntando se não tivesse feito testes
exaustivamente para tentar descobrir o erro.

Jeferson Santos wrote:
> "tail -n <numero>" serve para mostrar as ultimas <numero> linhas de um
> arquivo.
> No caso d tail -n 0 isso não vai retornar bulhufas.
> 
> Não querendo ser arrogante, até pq compartilhar conhecimento é o foco daqui,
> mas antes de simplesmente perguntar, abra o terminal e fuce ( por segurança,
> so nao faça testes indiscriminadamente com o rm, ok? :-p )
> 
> tail -n 0
> tail -n 1
> tail -n 2
> tail -n 3
> 
> Dessa forma vc veria o resultado com os proprios olhos, que é bem mais
> objetivo ne.
> 
> Abraços,
> Jeferson dos Santos
> 
> 2009/7/4 <address@hidden>
> 
>>
>>  Bom dia.
>> Você sabe o que quer dizer "tail -n 0"?
>> sds
>> Eric
>> On Sex 3/07/09 16:59 , Daniel Fernando Coimbra 
>> address@hidden<rufozc%40gmail.com>
>> sent:
>>
>> 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 ----
>>
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>  
>>
> 
> 
> 


reply via email to

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