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

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

Duvida Inserir variável condicional no grep


From: Rodrigo Cunha
Subject: Duvida Inserir variável condicional no grep
Date: Sun, 29 Jun 2014 02:39:18 -0300

Ola amigos, preciso de uma ajuda.
Estou montando um script para solucionar um problema que tenho com servidores compartilhados antigos.
Bom, a situação é a seguinte, tenho varios servers compartilhados, que não sou o admin, sou incumbido de "apagar incêndios" e um destes incêndios é que o conjunto de servidores nesta situação, muitas das vezes não possui o logrotate configurado e acaba gerando arquivos de log monstruosos com entradas de varias datas diferentes.Para sanar o meu problema estou bolando um script que faça o seguinte.
Leia o arquivo de log arq.log e a partir da leitura faça pequenos arquivos pertinentes as datas do incremento com a string novo.arq.log.stringdedata.gz ja compactando estes apagando , no termino da execução as linhas inseridas nestes novos arquivos deveriam ser apagadas do arquivo principal.

Notei que quando o script tenta executar a função em strings menores que 10 ele não funciona e gera arquivos vazios, frente a isso recriei o script abaixo com o novo grep para sanar, mas agora  os arquivos até são gerados mas não apresentam as entradas que desejo nem mesmo o processo secundario de remover as entradas do arquivo principal.
acredito que meu erro está basicamente aqui : grep -i '"Jun $j "\|"Jun  $j "'
As entradas padrão do meu arquivo de log são do padrão :
Jun 16 09:21:46 ...
Jun  9 16:21:18
assim inseri um espaço em branco na condicional or do grep

Segue abaixo o script :

#!/bin/bash

for i in {1..31}
do j=$i && cat  arq.log |grep -i '"Jun $j "\|"Jun  $j "' |gzip --stdout >  novo.arq.log.$j.06.2014.gz && sed -i '/^Jun '"$j"' /d'  arq.log
done


tambem tentei este :

do j=$i && cat  arq.log |grep -i 'Jun {$j} \|Jun  {$j} ' |gzip --stdout >  novo.arq.log.$j.06.2014.gz && sed -i '/^Jun '"$j"' /d'  arq.log
done

 

Alguém sabe como eu poderia proceder?


--
Atenciosamente,
Rodrigo Silva Cunha - RJ - São Gonçalo
Cel: +55 (0xx21) 7519-7375
e-mail : address@hidden

"Servo do Reino de Deus.
 Servo, do Rei e Líder  Jesus Cristo de Nazaré."

reply via email to

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