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
