[Fedora-directory-users] Re: Total number of LDAP entries

Ryan Braun [ADS] ryan.braun at ec.gc.ca
Tue Mar 10 18:04:20 UTC 2009


On Tuesday 10 March 2009 17:38:33 Branimir wrote:
> David Boreham wrote:
> > Branimir wrote:
> >> well, I know that I can perform search and count them. I hoped that
> >> there is some shell command implemented in FDS that could provide this
> >> number. I administer commercial LDAP solution that provides such
> >> command. In my case this commercial solution charges per directory
> >> entry so I always have to know entry count. I was hoping FDC has some
> >> kind of equivalent command.
> >
> > Pipe the search output through grep and wc to count the entries returned.
>
> Thanks David. I am familiar with UNIX basics :). As I said before, I was
> hoping there is some simple command for this, nothing more.
>
> Cheers,
>
> Branimir
>
Here's an easy perl script you can run,  it will do a sub search on a given suffex and output the total entries returned.

Ryan


#!/usr/bin/perl

use strict;
use Net::LDAP;

my $bind_dn = "cn=directory manager";
my $bind_pw = "password";
my @servers = qw(server1.com server2.com);
my $base_dn = "cn=config";

foreach my $server (@servers) {

	my $ldap = Net::LDAP->new($server, port => '389', timeout=>10);
	if ( ! $ldap )
	{
			
			# return 0 here for a failed attempt
			print "failed to connect to $server\n";
			return 0;
	}
	my $msg = $ldap->bind ( $bind_dn,password => $bind_pw ,version => 3 );

	if ($msg->code) {
		# print error message here because we have access to the $msg object
		print "\t$server\t\t\tFAILURE " . $msg->code . " error text is " . $msg->error_name . "\n";
		
		return 0;
	}
	
	$msg = $ldap->search(filter=>"objectClass=*",  base=>$base_dn,scope => 'sub' );
	
	print "Found " . $msg->entries . " total entries in $base_dn on $server\n";
}




More information about the 389-users mailing list