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

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

Re: [shell-script] Arquivo de log


From: jimmy
Subject: Re: [shell-script] Arquivo de log
Date: Wed, 1 Oct 2008 11:35:09 -0300
User-agent: Mutt/1.4.2.3i

corrigindo o script:

#!/usr/bin/sed -nf

/^INSERT/{
  s/INSERT INTO.*tabela/INSERT INTO tabela/;
  w insert.sql
}
/\(^UPDATE\|^DELETE\|^CREATE\)/{
  w not_insert.sql
}



On Wed, Oct 01, 2008 at 10:05:31AM -0300, jimmy wrote:
> acho que fica mais fácil agora criar um script para isso
> 
> /^INSERT/{
>   s/INSERT INTO.*tabela/INSERT INTO tabela/;
>   w insert.sql
> }
> /\(^UPDATE\|^DELETE\|^CREATE\)/{
>   w not_insert.sql
> }
> 
> entre as chaves você pode inserir mais comandos se
> necessário.
> 
> dê permissão de execução de execute com:
> 
> ./script.sed arquivo-de.log
> 
> avise se funcionar.
> 
> 
> On Wed, Oct 01, 2008 at 08:36:15AM -0300, Victor LGomes wrote:
> > Muito legal isso!!! Preciso estudar muito mais!!!
> > 
> > Aproveitando um pouco da sua boa vontade, eu consigo fazer uma substituição
> > nas linhas de INSERT antes de enviá-las para o arquivo "insert.sql" ? Por
> > exemplo, dá pra colocar a substituição abaixo no comando para enviar para o
> > arquivo os dados já modificados ?
> > 
> > 's/INSERT INTO .*\.tabela/INSERT INTO tabela/g'
> > 
> > Tentei aqui mas não funcionou! :-(
> > 
> > Obrigado!
> > Victor
> > 
> > 2008/9/30 jimmy <address@hidden>
> > 
> > >   $ awk '{ if ($0 ~ /INSERT INTO banco.tabela/){ print > "insert.sql"}
> > > else { if ($0 ~ /(^UPDATE|^DELETE|^CREATE)/){ print > "not_insert.sql"}}}'
> > > arquivo-de.log
> > >
> > > ou
> > >
> > > $ sed -ne '/INSERT INTO banco.tabela/W insert.sql' -ne
> > > '/\(^UPDATE\|^DELETE\|^CREATE\)/W not_insert.sql' arquivo-de.log
> > >
> > >
> > > On Tue, Sep 30, 2008 at 11:59:11AM -0300, Victor LGomes wrote:
> > > > Por exemplo,
> > > >
> > > > hoje eu faço assim:
> > > >
> > > > mysqlbinlog arquivo-de.log | grep -E "INSERT INTO banco.tabela .*" >
> > > > log-insert.txt
> > > >
> > > > mysqlbinlog arquivo-de.log | grep -E "^UPDATE .*|^DELETE .*|^CREATE .*" 
> > > > >
> > > > log-outros.txt
> > > >
> > > > Como vocês podem ver, dessa forma, sou obrigado a abrir duas vezes o
> > > arquivo
> > > > de log para filtrar o que preciso. Levando em conta que esses arquivos
> > > > chegam facilmente a 200M, dá pra imaginar o tempo que leva pra rodar 
> > > > essa
> > > > encrenca.
> > > >
> > > > Estava pensando em alguma forma de criar esses 2 arquivos em uma única
> > > > chamada ao log. Algo do tipo:
> > > >
> > > > mysqlbinlog arquivo-de.log | grep SE INSERT > log-insert.txt SENAO >
> > > > log-outros.txt
> > > >
> > > > É por aí...
> > > >
> > > > Abs.
> > > > Victor
> > > >
> > > > 2008/9/30 jimmy <address@hidden <ronaldo_tgz%40yahoo.com.br>>
> > > >
> > > > > teria um exemplo?
> > > > >
> > > > >
> > > > > On Tue, Sep 30, 2008 at 10:02:59AM -0300, Victor LGomes wrote:
> > > > > > Bom dia galera!
> > > > > >
> > > > > > Estou com um problema aqui que não sei como resolver (e nem se há 
> > > > > > uma
> > > > > forma
> > > > > > de resovê-lo como estou querendo).
> > > > > >
> > > > > > Tenho que filtrar um arquivo de log do banco de dados MySQL e criar
> > > um
> > > > > > arquivo contendo os comandos de INSERT em uma determinada tabela e 
> > > > > > um
> > > > > > segundo arquivo contendo os demais comandos. Atualmente preciso
> > > varrer o
> > > > > log
> > > > > > uma primeira vez para pegar os INSERTs e uma segunda vez para pegar
> > > os
> > > > > > demais comandos. Como são arquivos muito grandes, isso leva um tempo
> > > > > > considerável e imaginei que se houvesse uma forma de, em uma única
> > > > > passada,
> > > > > > pegar os INSERTs e jogar para um arquivo e os demais para outro,
> > > ganharia
> > > > > > bastante em performance.
> > > > > >
> > > > > > Alguém saberia como fazer isso ? Pesquisei um pouco mas não 
> > > > > > encontrei
> > > > > nada a
> > > > > > respeito.
> > > > > >
> > > > > > Obrigado!
> > > > > > Victor
> > > > > >
> > > > > > ------------------------------------
> > > > >
> > > > >
> > > >
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > > ------------------------------------
> > > >
> > > > ----------------------------------------------------------
> > > > Esta lista não admite a abordagem de outras liguagens de programação,
> > > como perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> > > prévio aviso.
> > > > ----------------------------------------------------------
> > > > Sair da lista: 
> > > > address@hidden<shell-script-unsubscribe%40yahoogrupos.com.br>
> > > > ----------------------------------------------------------
> > > > Esta lista é moderada de acordo com o previsto em
> > > http://www.listas-discussao.cjb.net
> > > > ----------------------------------------------------------
> > > > Servidor Newsgroup da lista: news.gmane.org
> > > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > > >
> > > > Links do Yahoo! Grupos
> > > >
> > > __________________________________________________________
> > >  
> > >
> > 
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> > 
> > 
> > ------------------------------------
> > 
> > ---------------------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de programação, como 
> > perl, C etc. Quem insistir em não seguir esta regra será moderado sem 
> > prévio aviso.
> > ---------------------------------------------------------------------
> > Sair da lista: address@hidden
> > ---------------------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em 
> > http://www.listas-discussao.cjb.net
> > ---------------------------------------------------------------------
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> > 
> > Links do Yahoo! Grupos
> > 
> _______________________________________________________________________________
> 
> ------------------------------------
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
> 
> Links do Yahoo! Grupos
> 
_______________________________________________________________________________


reply via email to

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