King0770-Notes-ldapsearch-to-csv: Difference between revisions
(Created page with "==<strong>Purpose</strong>== === '''Quick''' and '''dirty''' command to convert ldapsearch output to csv output. === <code><pre> ldapsearch -LLL -x -h `zmhostname`:389 -D $...") |
No edit summary |
||
Line 8: | Line 8: | ||
</pre></code> | </pre></code> | ||
==<strong>Ruby it!</strong>== | |||
<code><pre> | |||
require 'rubygems' | |||
require 'net/ldap' | |||
ldap = Net::LDAP.new :host => "zimbra-ldap.example.com", | |||
:port => "389", | |||
:base => "ou=people,DC=example,DC=com", | |||
:auth => { | |||
:method => :simple, | |||
:username => "uid=zimbra,cn=admins,cn=zimbra", | |||
:password => "s0Mep@sSw0rD" | |||
} | |||
filter = Net::LDAP::Filter.eq("displayName", "*") | |||
filter2 = Net::LDAP::Filter.eq("objectClass", "zimbraAccount") | |||
joined_filter = Net::LDAP::Filter.join(filter, filter2) | |||
treebase = "ou=people,dc=example,dc=com" | |||
ldap.search(:base => treebase, :filter => joined_filter) do |entry| | |||
print "NAME: #{entry.displayName} " | |||
print "MAIL: #{entry.zimbraMailDeliveryAddress} " | |||
puts | |||
end | |||
</pre></code> | |||
Revision as of 01:28, 25 May 2016
Purpose
Quick and dirty command to convert ldapsearch output to csv output.
ldapsearch -LLL -x -h `zmhostname`:389 -D $zimbra_ldap_userdn -w $zimbra_ldap_password '(&(zimbraAccountStatus=active)(&(!(zimbraIsSystemResource=TRUE))(!(zimbraIsSystemAccount=TRUE))))' cn sn displayName mail | sed -n '1h; 2,$H;${g;s/\n/,/g;p}' | sed 's/,,/\n/g'
Ruby it!
require 'rubygems'
require 'net/ldap'
ldap = Net::LDAP.new :host => "zimbra-ldap.example.com",
:port => "389",
:base => "ou=people,DC=example,DC=com",
:auth => {
:method => :simple,
:username => "uid=zimbra,cn=admins,cn=zimbra",
:password => "s0Mep@sSw0rD"
}
filter = Net::LDAP::Filter.eq("displayName", "*")
filter2 = Net::LDAP::Filter.eq("objectClass", "zimbraAccount")
joined_filter = Net::LDAP::Filter.join(filter, filter2)
treebase = "ou=people,dc=example,dc=com"
ldap.search(:base => treebase, :filter => joined_filter) do |entry|
print "NAME: #{entry.displayName} "
print "MAIL: #{entry.zimbraMailDeliveryAddress} "
puts
end