Como posso remover entradas duplicadas no log do linux

0

Eu mudei o log geral do mysql e estive registrando todas as transações que ocorreram na última semana. Eu também tenho um cronjob rodando a cada 5 minutos fazendo algumas transações mysql que estão poluindo meu log. Gostaria de saber como posso remover essas entradas do meu log para que pareça mais limpo.

As entradas repetitivas do cron são assim:

160614 16:45:01    36 Connect   user@localhost on 
                   36 Init DB   db1
                   36 Query     SELECT FROM status_history as sh INNER JOIN (SELECT work_order_i
d, MAX(status_changed) AS MaxDateTime FROM status_history GROUP BY work_order_id) as groupedsh ON sh.work_order_id = groupedsh.work_o

                            JOIN rchetype_work_order_views AS wov ON wo.id = wov.work_order_id
                                WHERE wov.viewed = 0 AND sh.status_id IN (SELECT status_id FROM rchetype_status_completed)
                   36 Quit

Eu estava pensando em usar sed, mas o problema é que a primeira linha obviamente tem uma data diferente e um número de transação diferente (neste caso 36) e eu gostaria de deletar todas as linhas até encontrar a primeira Quit no final. . Então eu estava me perguntando se há uma maneira de fazer isso. Estou apenas procurando por ideias.

    
por VaTo 24.06.2016 / 21:27

1 resposta

1

Supondo que eles sempre tenham a mesma quantidade de linhas, você poderia fazer algo assim: sed '/Connect\s*user@localhost on/,+7d' log.file Isso removerá a linha contendo Connect user@localhost on e as seguintes 7 linhas do arquivo "log.file" em seu diretório atual.

Edit: solução final (bem, pelo menos bom o suficiente para o OP para alterar a seu gosto) pode ser encontrada nos comentários.

    
por 24.06.2016 / 23:56

Tags