César Vianna escreveu:
> Pessoal, tenho um arquivo "emails.txt" que possui um email por linha.
> Preciso saber quais desses emails não estão em um LDAP.  Fiz o script
> abaixo. Funciona, porém MUITO lento. São uns 10000 registros.
> 
> Será que não tem outra implementação mais rápida?
> 
> 
> # testa se o email contido em emails.txt está no ldap (atributo sn). A linha
> numEntries só é exibida pelo LDAP quando o registro é encontrado.
> 
> for i in `cat emails.txt`
> do
>         ldapsearch -x sn=$i|if grep numEntries; then echo > /dev/null; else
> echo $i >> nao_existe.txt; fi
> done

Mude a abordagem.

Pegue todos as entradas ldap que possuem atributo de e-mail (que deveria
ser mail e não sn - surname - sobrenome). Depois filtre com grep todos
os e-mails que estão no e-mails.txt e não estão na listagem obtida.

ldapsearch -LLL -b "ou=Users,dc=domain,dc=com" -x '(!(mail=*))' mail |
egrep ^mail > listagem

grep -vf e-mails.txt listagem > nao_existe.txt


-- 
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP

Responder a