Re: [FUG-BR] Capturar dados dentro de arquivos

2006-02-03 Por tôpico Paulo Pires
Para pegar a linha _N_ de um arquivo qualquer:

tail -n +_N_ nome_do_arquivo | head -n 1

ou

head -n _N_ nome_do_arquivo | tail -n 1

ou

sed '_N_!d' nome_do_arquivo

mas todas essas formas lêem o arquivo inteiro.

Se entendi direito, você vai rodar isso de dentro do MRTG para
associar nomes aos IPs monitorados.  Se você tiver 200 hosts, você vai
fazer com que a cada execução, cada entrada do MRTG leia duas vezes o
arquivo de 200 hosts, para pegar apenas uma deles.  Assim, a cada
período de monitoração, você vai executar 400 pipe()/fork()/exec()
para ler, no total, 4 linhas.

Acho que o arquivo de hosts/nomes não vai ser alterado com muita
freqüência.  Se eu não entedi tudo errado, eu sugeriria você fazer um
script para gerar um mrtg.cfg estático.  O script seria rodado apenas
quando você alterasse o arquivo de nomes de hosts, e geraria um
mrtg.cfg que não precisasse mais chamar scripts externos.  Assim você
sairia de uma situação O(n²) a cada período para O(n).

On 1/31/06, Ademir Costa Peixoto [EMAIL PROTECTED] wrote:
 Prezados,


 No uso do MRTG tenho o seguinte script que coleta informações dentro do
 ipfw

 #!/bin/sh
 in=`/sbin/ipfw show 419 | /usr/bin/awk '{print $3}'`
 out=`/sbin/ipfw show 1019 | /usr/bin/awk '{print $3}'`
 echo $in
 echo $out
 echo 0
 echo -n 0


 Assim obtenho a informação na 3ª coluna. Mas como faço pra ler uma
 determinada linha de um arquivo?
 como ficaria isso?

 ## Consumo 2.3
 Target[2_3]: `sh /scripts/2_3.sh`
 Title[2_3]: IP 6.3 VARIAVEL DO NOME DO USUÁRIO
 Unscaled[2_3]: dwmy
 PageTop[2_3]: H1IP 6.3/H1 VARIAVEL DO NOME DO USUÁRIO
 LegendI[2_3]: Entrada
 LegendO[2_3]: Saida



 tipo:
 ## Consumo 2.3
 Target[2_3]: `sh /scripts/2_3.sh`
 Title[2_3]: ´linha,col,aquivodenomes.txt'
 Unscaled[2_3]: dwmy
 PageTop[2_3]: H1´linha,col,aquivodenomes.txt'/H1
 LegendI[2_3]: Entrada
 LegendO[2_3]: Saida


 Alguma dica?


 ___
 Freebsd mailing list
 Freebsd@fug.com.br
 http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br



--
Um abraço.
Paulo A. P. Pires

... Qui habet aurem audiat quid Spiritus dicat ecclesiis.

___
Freebsd mailing list
Freebsd@fug.com.br
http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br


Re: [FUG-BR] Capturar dados dentro de arquivos

2006-02-01 Por tôpico Joao Rocha Braga Filho
On 1/31/06, Ademir Costa Peixoto [EMAIL PROTECTED] wrote:
 Prezados,


 No uso do MRTG tenho o seguinte script que coleta informações dentro do
 ipfw

 #!/bin/sh
 in=`/sbin/ipfw show 419 | /usr/bin/awk '{print $3}'`
 out=`/sbin/ipfw show 1019 | /usr/bin/awk '{print $3}'`
 echo $in
 echo $out
 echo 0
 echo -n 0

Uma pequena otimização:


set `/sbin/ipfw show 419`
echo $3
set `/sbin/ipfw show 1019`
echo $3
echo 0
echo -n 0


Ou


/sbin/ipfw show 419 1019 | sed 's/^[0-9]*  *[0-9]*  *\([0-9]*\).*/\1/'
echo 0
echo -n 0





 Assim obtenho a informação na 3ª coluna. Mas como faço pra ler uma
 determinada linha de um arquivo?
 como ficaria isso?

 ## Consumo 2.3
 Target[2_3]: `sh /scripts/2_3.sh`
 Title[2_3]: IP 6.3 VARIAVEL DO NOME DO USUÁRIO
 Unscaled[2_3]: dwmy
 PageTop[2_3]: H1IP 6.3/H1 VARIAVEL DO NOME DO USUÁRIO
 LegendI[2_3]: Entrada
 LegendO[2_3]: Saida



 tipo:
 ## Consumo 2.3
 Target[2_3]: `sh /scripts/2_3.sh`
 Title[2_3]: ´linha,col,aquivodenomes.txt'
 Unscaled[2_3]: dwmy
 PageTop[2_3]: H1´linha,col,aquivodenomes.txt'/H1
 LegendI[2_3]: Entrada
 LegendO[2_3]: Saida


 Alguma dica?

Qual dado quer capturar? Já pensou em usar o grep para pre-processar,
obtendo a linha que interessa?


João Rocha.



 ___
 Freebsd mailing list
 Freebsd@fug.com.br
 http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br



--
Sempre se apanha mais com as menores besteiras. Experiência própria.

[EMAIL PROTECTED]
[EMAIL PROTECTED]
http://www.goffredo.eti.br

___
Freebsd mailing list
Freebsd@fug.com.br
http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br