[Comm] Ldap scripting: bash vs perl

Alexey Morsov =?iso-8859-1?q?samurai_=CE=C1_ricom=2Eru?=
Пн Май 24 14:10:46 MSD 2004


Eugene Prokopiev wrote:
> Здравствуйте!
> 
> Есть 2 тупых скрипта:
> 
> # cat make_ldap_filter.pl
> 
> #!/usr/bin/perl
> use Net::LDAP;
> $ldap = Net::LDAP->new('localhost') or die "$@";
> $ldap->bind;
> $mesg = $ldap->search(
>     base => "dc=myserver, dc=myprovider, dc=ru",
>     filter => sprintf("(&(objectClass=internetAccess) (%s=TRUE))", @ARGV)
> );
> $mesg->code && die $mesg->error;
> foreach $entry ($mesg->all_entries) {
>     foreach my $value ($entry->get_value('dhcpStatements')) {
>         if ($value =~ /fixed-address /) {
>             print "$'\n";
>         }
>     }
> }
> $ldap->unbind;
> 
> # cat make_ldap_filter.sh
> 
> #!/bin/bash
> ldapsearch -LLL "(&(objectClass=internetAccess) ("$1"=TRUE))" | grep 
> fixed-address | awk '{print $3}'
> 
> А вот время их выполнения:
> 
> # time ./make_ldap_filter.pl allowNat
> 192.168.101.15
> ...
> 192.168.101.95
> 2.42user 0.18system 0:03.18elapsed 81%CPU (0avgtext+0avgdata 0maxresident)k
> 0inputs+0outputs (436major+833minor)pagefaults 0swaps
> 
> # time ./make_ldap_filter.sh allowNat
> 192.168.101.15
> ...
> 192.168.101.95
> 0.09user 0.04system 0:00.36elapsed 35%CPU (0avgtext+0avgdata 0maxresident)k
> 0inputs+0outputs (834major+202minor)pagefaults 0swaps
> 
> 
> Что я сделал не так?
А что вас не устраивает? Вы же не ждете от большого Perl той же 
прыти как от куцего shell?
> 

-- 
Всего наилучшего,
Системный Администратор ЗАО "ИК "РИКОМ-ТРАСТ"
Алексей Морсов
http://www.ricom.ru
http://www.fondmarket.ru



Подробная информация о списке рассылки community