Parser ldapsearch to mysql

Hi,

I'm trying to make a bash script to read LDAP (from MS active directory with ldapsearch), extract the fields 'mail', 'division', 'memberOf', 'userAccountControl', 'uidNumber', 'name', 'sAMAccountName' and save in a mysql database.

I have extracted the fields with ldapsearch but I am not clear how to parse user by user and enter it in the database.

ldapsearch -W -H ldaps://my.domainldap.com:3269 -D "CN=botreader,OU=accountsNoPerson,OU=Usuarios,DC=office,DC=domain,DC=com" "(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=0))" -LLL "(&(objectclass=posixaccount)(mail=*))" 'mail' 'division' 'memberOf' 'userAccountControl' 'uidNumber' 'name' 'sAMAccountName'

But when i tried to use this ldapsearch and parser i have the last user in the result, example:

ldapsearch -W -H ldaps://my.domainldap.com:3269 -D  "CN=botreader,OU=accountsNoPerson,OU=Usuarios,DC=office,DC=domain,DC=com"   "(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=0))"  -LLL "(&(objectclass=posixaccount)(mail=*))" 'mail' 'division'  'memberOf' 'userAccountControl' 'uidNumber' 'name' 'sAMAccountName' \
    | gawk -F":" ' $1=="mail" { mail = $2; sub(/^  */,"", mail); next}
    $1=="division" { division = $2; sub(/^  */,"", division);next}
    $1=="memberOf" { memberOf = $2; sub(/^  */,"", memberOf);next}
    $1=="userAccountControl" { userAccountControl = $2; sub(/^  */,"", userAccountControl);next}
    END {
        printf("%s,%s,%s,%s\n", mail,division,memberOf,userAccountControl)
          }'

Result:

EMAIL_USER,a0335f6393561hqwd4557ff5b67,CN=group01,OU=persons01,OU=Users,DC=office,DC=at,512

Anybody know any easy way to do this?

Thanks in advance.

Welcome to the forum.

What exactly is your problem? Also, pls provide some sample data.

Hi,

The output is like this:

....

dn: CN=User 1,OU=ACT-RES,OU=DT,OU=Person,OU=Users,DC=
 ffices,DC=domain,DC=com
memberOf: CN=vpn,OU=DT,OU=Person,OU=Users,DC=Offices,
 DC=domain,DC=com
memberOf: CN=Dept1,CN=Builtin,DC=Offices,DC=domain,DC=com
memberOf: CN=Developers,OU=DT,OU=Person,OU=Users,DC=Offices,DC
 =domain,DC=com
name: User 1
userAccountControl: 512
sAMAccountName: user1
division: 42a740c784db1612bba443d7262bba4se3a85622b0
mail: suser1@domain.com
uidNumber: 11235

dn: CN=User 2,OU=ACT-RES,OU=DT,OU=Person,OU=Users,DC=o
 ffice,DC=domain,DC=com
memberOf: CN=Dept_HCD,CN=Builtin,DC=Offices,DC=domain,DC=com
memberOf: CN=Dept_HCR,CN=Builtin,DC=Offices,DC=domain,DC=com
memberOf: CN=Dept1,CN=Builtin,DC=Offices,DC=domain,DC=com
memberOf: CN=Admins,OU=Person,OU=Users,DC=Offices,DC=domai
 n,DC=com
name: User 2
userAccountControl: 512
sAMAccountName: user2
division: baa5939bf3b161c2bba443d726af9b957e4dd77b0
mail: user2@domain.com
uidNumber: 13092

...