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@fug.com.br
http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br

Responder a