Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Џа®Є®ЇмҐў …ўЈҐ­Ё©                    2:5020/400     26 May 2004  10:06:47
 To : Џа®Є®ЇмҐў …ўЈҐ­Ё©
 Subject : Re: Ldap: perl vs bash
 -------------------------------------------------------------------------------- 
 
 Hе смог удержаться и проделал то же самое на python, php и ruby. Вот что 
 получилось (приведены все варианты):
 
 # time ./make_ldap_filter.sh > /dev/null
 0.05user 0.03system 0:00.08elapsed 89%CPU (0avgtext+0avgdata 0maxresident)k
 0inputs+0outputs (825major+194minor)pagefaults 0swaps
 
 # time ./make_ldap_filter.php > /dev/null
 0.63user 0.51system 0:04.46elapsed 25%CPU (0avgtext+0avgdata 0maxresident)k
 0inputs+0outputs (8903major+196minor)pagefaults 0swaps
 
 # time ./make_ldap_filter.rb > /dev/null
 bind: Success
 0.37user 0.04system 0:02.21elapsed 18%CPU (0avgtext+0avgdata 0maxresident)k
 0inputs+0outputs (488major+211minor)pagefaults 0swaps
 
 # time ./make_ldap_filter.py > /dev/null
 0.40user 0.10system 0:01.70elapsed 29%CPU (0avgtext+0avgdata 0maxresident)k
 0inputs+0outputs (720major+349minor)pagefaults 0swaps
 
 # time ./make_ldap_filter.pl allowNat > /dev/null
 2.43user 0.13system 0:02.57elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
 0inputs+0outputs (437major+833minor)pagefaults 0swaps
 
 Hу а вот код:
 
 # cat ./make_ldap_filter.sh
 #!/bin/bash
 ldapsearch -LLL "(&(objectClass=internetAccess) ("$1"=TRUE))" | grep 
 fixed-address | awk '{print $3}'
 
 # cat ./make_ldap_filter.php
 #!/usr/bin/php
 <?php
 $ds=ldap_connect("localhost");
 if ($ds) {
      $r=ldap_bind($ds);
      $sr=ldap_search($ds,"dc=myserver, dc=myprovider, dc=ru", 
 "allowNat=TRUE");
      $info = ldap_get_entries($ds, $sr);
      for ($i=0; $i<$info["count"]; $i++) {
          echo "Host is: ". $info[$i]["cn"][0] ."\n";
      }
      ldap_close($ds);
 }
 
 ?>
 
 # cat ./make_ldap_filter.rb
 #!/usr/bin/ruby
 require "ldap"
 LDAP::Conn.new("localhost").bind{|conn|
    conn.perror("bind")
    begin
      conn.search("dc=myserver, dc=myprovider, dc=ru",
                  LDAP::LDAP_SCOPE_SUBTREE,
                  "(objectclass=*)"){|e|
        p e.vals("cn")
        p e.to_hash()
      }
    rescue LDAP::ResultError => msg
      $stderr.print(msg)
    end
 }
 
 # cat ./make_ldap_filter.py
 #!/usr/bin/env python
 import ldap, re
 try:
    ldapConnection = ldap.open('myserver.myprovider.ru')
    ldapConnection.simple_bind_s('', '')
 except ldap.LDAPError, e:
    print e
 out = []
 baseDN = 'cn=Network,dc=myserver,dc=myprovider,dc=ru'
 searchScope = ldap.SCOPE_SUBTREE
 _result = ldapConnection.search_s(baseDN, searchScope, 
 '(&(objectclass=internetAccess)(allowNat=TRUE))', ['dhcpStatements'])
 if _result:
    out = filter(lambda x: re.search('fixed-address.*', x), map(lambda x: 
 x[1]['dhcpStatements'][0], _result))
 print out
 ldapConnection.unbind_s()
 
 # 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;
 
 Еще одним тормозом оказался php ;)
 
 Hо тут уже дело в том, что завершение работы скрипта и возврат к # 
 происходит слишком медленно, сам поиск (на глаз) вроде не медленнее прочих.
 
 -- 
 С уважением, Прокопьев Евгений
 
 --- ifmail v.2.15dev5.3
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Ldap: perl vs bash   Џа®Є®ЇмҐў …ўЈҐ­Ё©   24 May 2004 15:03:56 
 Re: Ldap: perl vs bash   Џа®Є®ЇмҐў …ўЈҐ­Ё©   26 May 2004 10:06:47 
 Ldap: perl vs bash   Bulat Ziganshin   09 Jun 2004 21:17:56 
Архивное /ru.perl/6577fd20ba20.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional