我正在通过ForgeRock的OpenDJ尝试LDAP目录,我通过ssh发送大部分命令并且它可以工作,但是我遇到了一个需要输入不同行的命令。如果我在shell中输入它,它的工作原理如下:
ldapmodify -h server.example.com -p 1389 -w '1234' -D "cn=Directory\ Manager" -a
dn:ou=test1,dc=example,dc=com
objectclass:top
objectclass:organizationalUnit
ou:test1
请注意,有四行输入,命令在获得一行额外的空白输入(回车)后结束。命令的输入是动态的并且基于变量。如何通过ssh发送此多行命令?
以下是我发送其他命令的方法:
SEND_REMOTE_CMD='opendj/bin/dsconfig create-backend
--backend-name eg1
--set base-dn:dc=eg1,dc=com
--set enabled:true
--type local-db
--hostname server.example.com
--port 5444
--trustAll
--bindPassword '1234'
--no-prompt
--bindDN "cn=Directory\ Manager"'
ssh user@server.example.com $SEND_REMOTE_CMD
答案 0 :(得分:1)
要编写命令脚本并向其发送多行输入,您可以使用here document。
ldapmodify -h server.example.com -p 1389 -w '1234' -D "cn=Directory\ Manager" -a <<INPUT
dn:ou=test1,dc=example,dc=com
objectclass:top
objectclass:organizationalUnit
ou:test1
INPUT
要通过SSH执行此操作,请执行相同操作,但在前面添加ssh命令。
ssh user@host.name ldapmodify -h server.example.com -p 1389 -w '1234' -D "cn=Directory\ Manager" -a <<INPUT
dn:ou=test1,dc=example,dc=com
objectclass:top
objectclass:organizationalUnit
ou:test1
INPUT