在ProCurve上使用SSH链接命令

时间:2012-06-15 12:47:06

标签: shell ssh interactive

我需要备份HP ProCurve的配置,我需要通过SSH来完成。

ProCurve shell是交互式的,我不能把它像:

$ ssh user@ip 'command1; command2'

...因为shell给了我一个错误 - 可能是因为机器实际上没有类似Unix的shell。我需要连接,输入密码,然后执行两个命令。

2 个答案:

答案 0 :(得分:3)

使用Procurve / Cisco设备,您无法简单地运行ssh hostname command。您需要使用一些可以与交互式ssh会话一起工作的工具,即期望,pexpect或类似的东西。另一种解决方案是使用socat

(sleep 5; echo ${PASSWORD}; sleep 2; echo ; echo command1; sleep 2) \
| socat - EXEC:"ssh ${SWITCH}",setsid,pty,ctty

答案 1 :(得分:0)

我不确定我完全理解你的问题。您是否尝试运行多个命令? 你试过sh -c吗?

ssh user@ip sh -c "command1; command2"

来自man sh

       -c               Read commands from the command_string operand instead of from the standard input.  Special parameter 0 will be set from the command_name operand
                        and the positional parameters ($1, $2, etc.)  set from the remaining argument operands.