ldapmasterのエントリを変更するために、リモートホストでldapmodifyを実行しようとしています。 mkntpwd バイナリが必要で、サーバーが構成されておらず、ldap ツールで ldap-utils もインストールしたため、ホストシステムに slapd をインストールしました。シェルでコマンドを実行すると正常に動作しますが、スクリプトでは機能しません。次のようにスクリプトでコマンドを実行しています。
.......
echo "dn: ou=xxx,dc=yyy,dc=zzz
changetype: modify
replace: attribute
attribute: ${newValue}" \
| ldapmodify -D "${ldapadmindn}" -w "${ldappassword}" -x -H ldaps://myldapmaster:636 >/dev/null 2>&1
.......
私もldifファイルを使ってみました。
.......
(
echo "dn: ou=xxx,dc=yyy,dc=zzz"
echo "changetype: modify"
echo "replace: attribute"
echo "attribute: ${newValue}"
) >> file.ldif
ldapmodify -D "${ldapadmindn}" -w "${ldappassword}" -x -H ldaps://myldapmaster:636 -f file.ldif >/dev/null 2>&1
.......
残念ながら、私のスクリプトは動作しません。私が言ったように、両方のバージョンはシェルでうまく動作します。何が間違っているのか知っていますか?
まず、ありがとうございます。
ベストアンサー1
echoコマンドの後の各行の先頭にあるスペースを削除することでこの問題を解決できました。 ldifファイルの場合、ファイルが空でないことが問題であり、削除した後は正常に動作します。ありがとう
問題は解決済みとしてマークされることがあります。