Rex Consulting Tech Tips

Using the Sun Directory Server Tools LDIFDIFF,PL and LDIFFSORT,PL to Verify Bulk Loads

Steps to Verify a Bulk Load:

  1. Import (ldif2db) users from entiredirectory.ldif.
  2. Export the users (db2ldif) to entiredirectory.export.ldif.
  3. Remove the entry ids:

    egrep -v "entry-id|nsUniqueId" entiredirectory.ldif > \ entiredirectory.noids.ldif

    egrep -v "entry-id|nsUniqueId" entiredirectory.export.ldif > \ entiredirectory.export.noids.ldif

  4. Use “ldifsort.pl” to sort the files:

    ./contrib/ldifsort.pl -k dn entiredirectory.noids.ldif > \ entiredirectory.noids.sorted.ldif

    ./contrib/ldifsort.pl -k dn entiredirectory.export.noids.ldif > \ entiredirectory.export.noids.sorted.ldif

  5. Use “ldifdiff.pl to diff the files:

    ./contrib/ldifdiff.pl -k dn entiredirectory.noids.sorted.ldif \ entiredirectory.export.noids.sorted.ldif

  6. If there is no output, then both the LDIFS contain the same data.

Important Notes

  • These tools seem to work on Windows but USE THEM ON UNIX! Windows line breaks seem to break these tools.
  • I also tested changing the export file and using ldifdiff.pl on it. As advertised, ldifdiff.pl generates on standard output the LDIF changes needed to transform the target into the source.
  • One potential problem with ldifdiff.pl output is that renaming the DN will result in a DELETE +ADD, not a MODRDN, so you will lose the createTimeStamp. (Of course, this could be fixed, with some perl programming.)

Article by Chris Paul, Rex Consulting, Inc.