【发布时间】:2018-11-30 10:18:01
【问题描述】:
我正在用 Python 编写一个程序,它必须通过 SSH 与物理目标通信,并自动向该目标发送一些命令(用于测试)。
我从使用 Paramiko 开始,一切都很完美,直到我必须发送几个命令,例如第二个命令必须在第一个命令的上下文中执行时(例如第一个命令是 cd /mytargetRep,第二个命令是一个是./executeWhatIWant)。我不能使用exec_command 这样做,因为每个exec_command 都会启动一个新会话。
我尝试使用invoke_shell() 的频道,但我有另一个问题:我不知道执行此操作何时结束命令执行。我可以执行一些非常短(及时)的命令,而其他一些则更长,所以我需要知道命令执行何时结束。
我知道将exec_command 与&& 等shell 逻辑操作一起使用或使用; 的解决方法。例如exec_command("cd /mytargetRep && ./executeWhatIWant")。但我不能那样做,因为它必须也可以手动执行一些命令(我有一个可以发送命令的极简终端),所以例如,用户将创建 cd /mytargetRep 然后 ./executeWhatIWant 而不是 @ 987654332@.
所以我的问题是:有没有解决方案,通过使用 Paramiko 在同一个 SSH 会话中发送多个命令并能够知道命令执行的结束?
谢谢
【问题讨论】:
标签: python shell ssh command paramiko