我正在使用expect脚本,我在本地系统上执行它。
作为脚本的一部分,我必须连接到远程服务器,我必须在echo语句中打印命令的输出。
喜欢
发送" echo'服务mysql是[service mysqld status]' \ r"。
在远程系统上,我希望打印下面的输出。
服务mysql正在运行/已停止/已启动。
以下是我尝试使用的代码:
#!/usr/bin/expect -f
#!/bin/bash
spawn ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no root@remotehost
expect "password: "
send "12shroot\r"
expect "#"
send "echo 'service status of mysql is $[/sbin/service mysqld status]'\r"
expect eof
我收到以下错误:
命令名称无效" / sbin / service" 执行时 " / sbin / service mysqld status" 从内部调用 "发送" echo包括ms的刀片数量为$ [/ sbin / service mysqld status]' \ r""
(file "/tmp/hudson3843443005004841895.sh" line 7)
构建步骤'执行shell'标记为失败 完成:失败
请帮助!!!
我尝试了expect_out(缓冲区)。但完整的控制台o / p是它的一部分。
我想知道我们是否可以使用send在远程服务器上执行命令作为echo的一部分。
先谢谢了一百万人