Ich suche ein LDAP-Verzeichnis, das eine viel größere Anzahl von Ergebnissen als das derzeit festgelegte Größenlimit (500) von slapd.conf enthält und das in jeder Hinsicht nicht geändert werden kann.
Meine Idee war, ldapsearch weiterhin auszuführen, aber jedes Mal von einem anderen Offset (501, 1001 usw.), bis alle Ergebnisse erzielt wurden.
Ich habe die Manpages für ldapsearch gesehen und es sieht so aus , als ob dies für Sie mit den -E-Optionen erledigt wird:
-E [!]<ext>[=<extparam>] search extensions (! indicates criticality)
[!]domainScope (domain scope)
[!]mv=<filter> (matched values filter)
[!]pr=<size>[/prompt|noprompt] (paged results/prompt)
[!]subentries[=true|false] (subentries)
[!]sync=ro[/<cookie>] (LDAP Sync refreshOnly)
rp[/<cookie>][/<slimit>] (LDAP Sync refreshAndPersist)
Also habe ich versucht:
ldapsearch -h $HOST -p $PORT -x -L -b "$BASE" '*' '+' -E pr=$SIZE
Wenn jedoch die Ergebnisse (auch Seitenergebnisse mit einer Größe von 50) 500 ergeben, erhalte ich den gleichen Fehler, als ob die Ergebnisse nicht Seiten enthalten würden:
Size limit exceeded (4)
Ich habe in den Manpages gesehen, dass es eine andere Option für die Virtuallistenansicht gibt, konnte aber keine Beispiele dafür finden, und ich glaube auch nicht, dass meine Version von ldapsearch diese Option hat.
Ziel ist es, eine Sicherung mit ldapsearch und der Option -L zu erstellen, um eine ldif-Datei zu erstellen, die zum Wiederherstellen der Datenbank geeignet ist.
Einige Google-Suchanfragen zeigen dasselbe Problem, das ich habe, aber keine hat eine anwendbare Lösung.
loglevel
256 einstellen, um zu sehen, was es sagt.Antworten:
Es steht dem Directory Server-Administrator frei, die Anzahl der Einträge zu begrenzen, die in der Antwort auf eine Suchanforderung zurückgegeben werden können. Der LDAP-Client kann ein Größenlimit anfordern, dieses vom Client angeforderte Limit kann jedoch das vom Server festgelegte Limit nicht überschreiben. Das Paging funktioniert ordnungsgemäß: Das Paging sendet einfach mehrere Suchantworten, von denen jede die vom Client angeforderte Größe aufweist, die vom Server festgelegte Größenbeschränkung jedoch nicht überschreiten kann. Die Ansicht der virtuellen Liste ähnelt dem einfachen Paging, mit der Ausnahme, dass der LDAP-Client an einer beliebigen Stelle gestartet und fortgesetzt werden kann, wohingegen der LDAP-Client bei einfach ausgelagerten Ergebnissen die Ergebnisse nacheinander lesen muss.
quelle
Der wichtigste Teil ist am Ende:
-E pr=2147483647/noprompt
. Ich habe dies heute implementiert und weiß, dass es funktioniert, zumindest mit dem LDAP-Backend von Active Directory. Für mich war dies in der Lage, Servergrenzen zu umgehen.In Ihrem Beispiel fehlt möglicherweise eine / noprompt- oder / -Aufforderung. Der Unterschied besteht darin, dass mit / prompt zwischen den einzelnen Seiten angehalten wird.
Ich bin nicht sicher, warum die Nummer 2147483647 funktioniert, aber es funktioniert.
Meine Quelle: http://www.commandlinefu.com/commands/view/2779/bypass-1000-entry-limit-of-active-directory-with-ldapsearch
quelle
2147483647
ist die Seitengröße. Wenn Sie den-E
Parameter auf ändern ,pr=100/prompt
werdenldapsearch
Sie aufgefordert, alle 100 Ergebnisse eine Taste zu drücken.ApacheDS kann die von Ihnen gesuchten Seiten durchsuchen. Zumindest gegen Active Directory.
quelle