SSH远程命令结果无法正常显示

时间:2014-05-13 19:07:09

标签: linux ssh

我正在运行以下命令,该命令在我们的Linux服务器上运行良好:

ssh -n user@192.168.1.1 "echo start; hostname;" > results.tmp

但是,我一直在尝试在基于Unix的盒子上运行类似的命令(我相信)并且启用了SSH。

因此,SSH进入此服务器并运行命令有效:

 ssh admin@192.168.2.2

 SHOW NFS STATUS

结果:

 NFS Server:  Status:     Last Error:     IP Address:      Mount Path:
  Primary     active      NONE

现在,我尝试像这样运行命令(转储到要解析的文本文件中):

 ssh -n admin@192.168.2.2 "SHOW NFS STATUS" > results.tmp

...我输入密码,收到此消息,但没有任何结果:

 Received disconnect from 192.168.2.2: 11: Logged out.

我尝试删除/添加“-n”和括号以及分号,并且无法使其像其他Linux服务器一样运行。 任何想法都表示赞赏!感谢

当我运行此命令时,还有一个想法:

 ssh -n admin@192.168.2.2 -p 22

我得到了这些结果:

 Pseudo-terminal will not be allocated because stdin is not a terminal.

1 个答案:

答案 0 :(得分:0)

我能够使用expect脚本来解决这个问题。感谢所有帮助过的人。

 #!/bin/bash
 expect -c "
 spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no admin@192.168.2.2
 #Password prompt
 expect -exact \"password:\"
 #Send password
 send \"s3cr3tp@ssword\r\"
 sleep 1
 expect -exact \"> \"
 send \"SHOW NFS SHELF 1 SLOT 1 STATUS\r\"
 #drop us back to a prompt
 expect -exact \"> \"
 #Exit
 \"exit\"
 "