トミリュウ・コムホームTestお問い合わせご協力ありがとうございました。↓LDAPのユーザーをバッチ処理でまとめて登録・更新・削除する事例についてまとめます。発端は、外部の別システムのデータベースで別途管理されているユーザー情報と同期をとって、LDAPのユーザー情報を一括メンテナンスしたいというニーズから必要になった処理です。したがって、外部システムで別管理されているデータベースからCSVファイルを作成して、それを入力ファイルとしてLDAPを更新するバッチ処理で、日に数回実行して同期を取ります。以下のようなLDAPエントリを例に考えます。「uid=2.使用するLDAPの主要コマンドまとめてバッチ処理するシェル・プログラムを作成するにあたり、シェルの中で実行するLDAPの基本コマンドを簡単に説明します。オプション付きで実行することと同じです。入力データldifファイルの形式は双方で異なるので、バッチ処理では登録と更新でトランザクションを分ける方向で考えます。更新と登録のトランザクションを1つにすること(=シェルを1つにすること)も不可能ではありませんが、I/Fされてきた入力データのエントリの各々について、既存のLDAPデータ上に存在するか否かによって、登録or更新を自動判別して振り分けるような処理を行うことになります。コマンドについては、-Sオプションをつけることによって、異常によりスキップしたデータを一意属性uidとともにファイルに格納してくれるので、これを活用して異常データを出力するしくみが構築可能です。ldapdeleteコマンドについては、残念ながらありません。情報が表示されないので意味がありません。コマンドを実行するようなシェル・スクリプトにして、スクリプト側でエラー時に必要なuidの情報を出力するような設計にする必要が出てきます。ldapmodify(ldapadd)コマンドを実行するような設計にする必要がでてきます。ちなみに、この記事で最後に記載しているシェルスクリプトは、そこまで複雑なことは行っていません。LDAPのcn:に設定。LDAPのsn:に設定。※1カラム目のユーザーIDと5カラム目のパスワード以外は、固定文字など何でもいい場合もあるかと。CSVファイルからユーザー追加用ldifファイルを自動作成する。CSVファイルからユーザー更新用ldifファイルを自動生成する。CSVファイルからユーザー更新用ldifファイルを自動生成する。作成したldifファイル(./user_del.ldif)5.シェル・スクリプト実際に作成したシェル・スクリプトの内容を示します。参考にされる場合は自己責任で御願いします。コメントをキャンセルメールアドレスが公開されることはありません。