Editar arquivo sem abrir

1. Editar arquivo sem abrir

Rodrigo Ferraz de Almeida Lima
linux_roger

(usa Gentoo)

Enviado em 12/02/2010 - 18:01h

Bom dia pessoal do VOL

Seguite tenho um grafico de cliente conectados gerado no MRTG, até ai beleza só que quando eu cadastro um novo cliente e passa de X para X+1 cliente eu tenho que entrar no arquivo de configuração do grafico e alterar manualmente.

a seguinte linha:

echo $(echo $(mysql --user=root --password=xxxxxxxx --execute="SELECT COUNT(*) FROM radius.radcheck;" ) | cut -c 9-15 | tr -d ' ')

Me dá a quantidade de cliente no banco de dados só falta saber como faço para jogar isso no arquivo "mrtg.cfg" na linha "MaxBytes[_]: 1" e troca por 2 e por 3 assim por diante deacordo com o numero de cliente que eu tenho cadastrado ou deletado.....

Alguem tem alguma solução?!?!?!?!?!?!


  


2. Re: Editar arquivo sem abrir

Francisco Ambrozio
fco

(usa Slackware)

Enviado em 12/02/2010 - 18:48h

Uma alternativa para editar arquivos sem abri-los é o sed, cuja sintaxe seria:

$ sed -i 's/procura/substitui/g' Arquivo

Logo em tese, você poderia usar o seguinte:

$ sed -i "s/MaxBytes[_]: 1/MaxBytes[_]: 2/" Arquivo

Só que temos alguns percalços.

1º -> você precisaria saber o valor de MaxBytes inicialmente.
2º -> a linha "MaxBytes[_]: X" teria que ser única.

Considerando a situação ideal, a solução seria mais ou menos assim:

NumClientes=$(mysql --user=root --password=xxxxxxxx --execute="SELECT COUNT(*) FROM radius.radcheck;" ) | cut -c 9-15 | tr -d ' ') #acho que não precisa dos "echos"
MBytesAtual=$(grep MaxBytes mrtg.cfg)
MBytesNova="MaxBytes [_]: ${NumClientes}"

sed -i "s/$MBytesAtual/$MBytesNova/" mrtg.cfg

OBS.: Faça uma cópia do mrtg.cfg teste a abordagem nesta cópia. Todo cuidado é pouco. :)

Abraço.



3. Re: Editar arquivo sem abrir

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 12/02/2010 - 19:35h

quantidade=(seu comando)
sed -i 's/MaxBytes\[_]: .*/MaxBytes\[_]: '$quantidade'/' mrtg.cfg

blz






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts