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

2006-02-03 Por tôpico Ademir Costa Peixoto
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, 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).
 


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


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

2006-02-01 Por tôpico Ademir Costa Peixoto
 Vc viu o conteudo do mrtg.cfg?
 
 ## 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


Como pego os nomes num arquivo texto?

ex:
Macs_e_ips.txt

192.168.0.2  01:01:01:01:01:01
#João da Silva
192.168.0.3  01:01:01:01:01:02
#José dos Santos

Como leio a linha 2,4,6,8 e assim sucessivamente num arquivo?



Obrigado...

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


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

2006-02-01 Por tôpico Joao Rocha Braga Filho
On 2/1/06, Ademir Costa Peixoto [EMAIL PROTECTED] wrote:
  Vc viu o conteudo do mrtg.cfg?

  ## 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


 Como pego os nomes num arquivo texto?

 ex:
 Macs_e_ips.txt

 192.168.0.2  01:01:01:01:01:01
 #João da Silva
 192.168.0.3  01:01:01:01:01:02
 #José dos Santos

 Como leio a linha 2,4,6,8 e assim sucessivamente num arquivo?


Linhas pares?


(
while read a
do
read b
echo $b
done
)  arquivo


Esta é uma maneira.

Mas pelo que vi, as linhas com os nomes comecam com #, não?
Então pode fazer:

grep '^#' arquivo


Espero que isto já ajude.

João Rocha.



 Obrigado...

 ___
 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