2

シェルスクリプトで「ldapsearch」を使用して、テキストファイルにリストされているUIDをリモートLDAPディレクトリのUIDと比較したいと思います。

私はシェルスクリプトの専門家ではないので、助けていただければ幸いです。以下は、引数として指定されたテキストファイルをループしますが、必要なのは、テキストファイルのUIDがLDAPに存在しない場合にエコーすることです。

#!/bin/sh

for i in `cat $1`;
  do ldapsearch -x -H ldaps://ldap-66.example.com -b ou=People,dc=crm,dc=example,dc=com uid=$i | grep uid: | awk '{print $2}';
  echo $i
done
4

3 に答える 3

5

試す:

#!/bin/sh

url="ldaps://ldap-66.example.com"
basedn="ou=People,dc=crm,dc=example,dc=com"

for i in `cat $1`; do
    if ldapsearch -x -H "$url" -b "$basedn" uid=$i uid > /dev/null
    then
        # Do nothing
        true
    else
        echo $i
    fi
done
于 2012-08-01T04:33:08.400 に答える
3

Anttix、これが機能した最終バージョンです。再度、感謝します。これは質問を承認済みとしてマークしますか?

#!/bin/sh

url="ldaps://ldap-66.example.com"
basedn="ou=People,dc=crm,dc=example,dc=com"

for i in `cat $1`; do
    if ldapsearch -x -H "$url" -b "$basedn" uid=$i | grep uid: | awk '{print $2}' > /dev/null
    then
        # Do nothing
        true
    else
        echo $i
    fi
done
于 2012-08-01T14:25:28.433 に答える