[FUG-BR] Capturar dados dentro de arquivos
Paulo Pires
pappires em gmail.com
Sex Fev 3 11:15:39 BRST 2006
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, 40000 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 <ademir em tellecom.com.br> 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]: <H1>IP 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 em 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 em fug.com.br
http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br
Mais detalhes sobre a lista de discussão freebsd