我正在用Python编写程序,该程序必须通过SSH与物理目标进行通信,并自动将一些命令发送到该目标(用于测试).
我首先使用Paramiko进行此操作,然后一切都非常完美,直到我必须发送多个命令,并且例如当第二个命令必须在第一个命令的上下文中执行时(例如,第一个命令是cd / mytargetRep,第二个命令是. / executeWhatIWant).我不能使用exec_command这样做,因为每个exec_command都会启动一个新会话.
我尝试将通道与invoke_shell()一起使用,但是与此相关的另一个问题是:我不知道通过此操作何时结束命令执行.我可以执行一些非常短的(及时的)命令执行,而其他一些实际上要更长一些,因此我需要知道命令执行何时结束.
我知道一种解决方案,可以将exec_command与shell逻辑操作(例如&&或使用;.例如exec_command(“ cd / mytargetRep& ../ executeWhatIWant”).但是我不能这样做,因为还必须可以手动执行一些命令(我有一个可以发送命令的极简终端),因此,例如,用户将先创建cd / mytargetRep,然后再创建./executeWhatIWant而不是cd. / mytargetRep&& ./executeWhatIWant.
所以我的问题是:使用Paramiko在同一个SSH会话中发送多个命令并能够知道命令执行的结束,是否有解决方案?
谢谢