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 10:05:31 -0300
User-agent: Mutt/1.4.2.3i

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
> 
_______________________________________________________________________________


reply via email to

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