[FUG-BR] Res: Re: Capturar dados dentro de arquivos
Ademir Costa Peixoto
ademir em tellecom.com.br
Sex Fev 3 13:11:39 BRST 2006
Exato Paulo.. Vc me deu um caminho bom....
Mas como gero um gerador de scripts? Pensei em deixar ele gerar o mrtg
cfg as 4 da manhã.. assim a coisa fica automatizada e menos pesado pro
processador.
Algo como:
gerarscript.sh
#!/bin/sh
(Open file )
echo Target[2_3]: `sh /scripts/2_3.sh`
echo Title[2_3]: ´tail -n +_2_ macs_e_nomes.txt | head -n 1'
echo Unscaled[2_3]: dwmy
echo PageTop[2_3]: <H1> ´tail -n +_2_ macs_e_nomes.txt | head -n 1' </H1>
echo LegendI[2_3]: Entrada
echo LegendO[2_3]: Saida
echo " "
echo Target[2_4]: `sh /scripts/2_4.sh`
echo Title[2_4]: ´tail -n +_4_ macs_e_nomes.txt | head -n 1'
echo Unscaled[2_4]: dwmy
echo PageTop[2_4]: <H1> ´tail -n +_4_ macs_e_nomes.txt | head -n 1' </H1>
echo LegendI[2_4]: Entrada
echo LegendO[2_4]: Saida
(Close File)
Mas tenho como saber como direcionar a saida pra o aquivo mrtg.cfg e tb como
faço uma quebra de linha ou uma continuação dela.
-------Mensagem original-------
De: Paulo Pires
Data: 02/03/06 10:29:33
Para: Lista de discussao do grupo FUG-BR
Assunto: Re: [FUG-BR] Capturar dados dentro de arquivos
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).
_______________________________________________
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