[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Res: smbstatus



> (parametros: $1=filtro_da_busca, $2=usuario_mysql, $3=senha_mysql)

deixa eu ver se entendi direito?

> #!/bin/bash
> (smbstatus -p) |grep $1 | tr -s " " > smbstatus2.txt

pega os processos do smbstatus que casem com $1, e "limpa" os espaços em 
branco duplicados (tr -s " ") e grava no smbstatus2.txt

> linha=$(wc -l smbstatus2.txt | cut -f 1 -d' ')
/
pega o numero de linhas do arquivo smbstatus2.txt

> litemp=$linha
> for i in $(seq 1 $litemp)
> do
> !   nome=$(cut -f 3 -d' ' smbstatus2.txt | uniq -w 1 )
> !   maq=$(cut -f 5 -d' ' smbstatus2.txt | uniq -w 1 )
> !   ip=$(cut -f 6 -d'  ' smbstatus2.txt | uniq -w 1)

seta nome, máquina e ip com o valor correspondente salvo em smbstatus2.txt 

> mysql -u $2 -p$3 -D banco -e"select nome from usuarios where id='$nome'" > 
>testmy.txt 

busca o nome do usuário dentro da base de dados e salva no arquivo testmy.txt 

> tail -n1 testmy.txt > testmy2.txt 

ué? pode haver mais de um nome? como saber que é o correto? 

> mv testmy2.txt testmy.txt
Limpa o temporario usado para escolher o nome correto

> int=$(cut -f 10 testmy.txt)
Não entendi. Porque precisa "cortar" o nome do usuario? padronizar a saida?

> echo -n "$ip $nome $int "
Mostra a saida com o ip, o nome e o $int, que até agora não sei de onde saiu, 
nem pra que serve. :(

> litemp=$(($litemp-1))
Decrescenta a litemp. Daqui pra frente não entendi mais nada pq estas linhas. 


> tail -n$litemp smbstatus2.txt > tempsmb.txt
> mv tempsmb.txt smbstatus2.txt
> done



mas algumas sugestões - (aka 2 cents) :
1 - eu vi que vc deu um uniq -w 1. Eu usaria um "sort" encadeado ANTES do 
uniq. (ainda não consegui entender pra que necessidade real funciona o 
script)

2 - eu não usaria e abusaria do cut como vc usou/abusou. Eu usaria o awk. algo 
como 
<code>
echo maria joao                         cristina | awk '{ print $3}' 
</code>
retornaria "cristina", independente de haver ou não 200 espaços e tabulações 
entre joao e cristina.

3 - achei interessante o tr -s " ", nunca havia pensado nesse uso para o tr. 
Mas simplesmente devido ao item (2), dificilmente tenho esses problemas com 
espaços... Mas em caso de desespero, uso o sed "s/\s+/ /g"  ou o 
perl -pe "s/\s+/ /g" ... 

4 - vi que você abusa de resultados salvos em arquivos com nomes 
pre-definidos. Ou você começa a randomizar os nomes dos seus arquivos 
temporarios - como por exemplo explorando o uso de "$$" no nome do arquivo (o 
$$ pega o pid do processo que o script está rodando) ou reza para que nenhum 
usuário engraçadinho linke por exemplo o  /etc/passwd em algum  tempsmb.txt 
perdido pelo caminho...  Ou ainda, comece a salvar os resultados em variáveis 
apenas. Fica bonito, eu garanto!!! rs

5 - o meu smbstatus -p retorna um monte de mensagens "subliminares" das minhas 
seções do smb.conf. Eu experimentei (smbstatus -p) 2>&1 e ficou bem limpa a 
saida. 

6 - Já experimentou fazer em perl ? ficaria mais legal... mas tbm não sei pra 
que queres isso...

[ ]s, Henry


> .''`.   Yours Trully
>
> : :'  :  Carlos Beltrame
>
> `. `'`   Eletrical Engineer
>   `-     IEEE #80472763
> Linux User #442225
> UNESP - Câmpus de Ilha Solteira
> http://www.ieee.org/unesp-ilha
> http://www.ldc.feis.unesp.br


_______________________________________________________
Yahoo! Mail - Sempre a melhor opção para você!
Experimente já e veja as novidades.
http://br.yahoo.com/mailbeta/tudonovo/



Reply to: