원격 서버에서 ldapmodify 실행

원격 서버에서 ldapmodify 실행

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 파일의 경우 파일이 비어 있지 않은 것이 문제이며, 삭제한 후에는 정상적으로 작동합니다. 감사합니다

문제는 해결됨으로 표시될 수 있습니다.

관련 정보