[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