[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