【发布时间】:2019-07-22 19:10:34
【问题描述】:
我正在编写一个登录到服务器并查找应用程序 ID 的自动化脚本。我正在使用一个期望脚本,以便在期待提示后登录到他的每个服务器。当我登录时,有一堵默认文本(安全通知等)我在登录服务器后尝试存储命令的输出,但没有找到任何运气。任何建议表示赞赏
这适用于 Linux 服务器。我尝试过使用 $expect_out(buffer) 但在开始时将登录消息静音并没有运气。
ssh -l <userid> <servername>
expect "$prompt" {send "ps -ef|grep java| grep -i 'jboss' |cut -f1 -d' '\r"}
set id $expect_out(buffer)
exec ./output.sh $id
我收到的输出是登录消息的子字符串。
【问题讨论】:
-
如果你使用ssh密钥认证,这可以像
ssh -l user host './output.sh $(pgrep -fi java.*jboss)'一样简单 -
@glennjackman 不幸的是,我必须为每台服务器输入密码,这就是我使用 expect 的原因。