+ Responder ao Tópico



  1. #1

    Padrão ajuda com script

    Ola. Preciso de uma ajuda de vocês. Gostaria de saber, como faço para fazer uma busca no /var/log/messages onde eu consiga pegar endereços ip's e os mesmos sejam armazenados em uma variável qualquer . Isso tudo, independente se o endereço ip for 200.200.200.200, 192.168.0.0, 172.111.111.111 etc.... Eu queria fazer isso da maneira mais simples possível, se possível em 1 ou 2 linhas.

    []'s, Renato

  2. #2

    Padrão

    Se eu entendi você pretende fazer um script para filtar os registros de um servidor de logs? Se for isso eu tenho um script pronto em http://di.uern.br/~pedroarthur/down/rc.parselog . Pode utilizar a vontade.
    funcionamento: rc.parselog [copy] arquivo
    O arquivo deve estar no padrão utilizado pelo syslog. O copy ira copiar a saída para o diretório que você está atualmente. Por padrão ele gera os filtros no mesmo diretório do arquivo original.

    Para filtrar endereços IP você pode utilizar a seguinte expressão regular:

    [[:space:]]([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}[[:space:]]

    Então com o pcregrep você pode fazer:

    VAR=$(pcregrep -o "[[:space:]]([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}[[:space:]]" /var/log/messages)
    Última edição por PEdroArthurJEdi; 12-02-2008 às 22:49. Razão: Adição de aspas no comando.