使用Paramiko分别执行多个相关命令,并找出每个命令何时完成

使用Paramiko分别执行多个相关命令,并找出每个命令何时完成,第1张

使用Paramiko分别执行多个相关命令,并找出每个命令何时完成

似乎您想实现一个交互式外壳,但是您需要控制单个命令的执行。仅使用SSH接口是不可能的。SSH中的“
shell”通道是带有输入和输出的黑盒。因此,Paramiko中没有任何东西可以帮助您实现这一目标。

如果您需要确定特定命令何时完成或特定命令的输出在何处结束,则需要使用Shell的功能。

您可以通过在两者之间插入唯一的分隔符(字符串)并在通道输出流中搜索来解决该问题。使用通用的* nix shell可以实现以下效果:

channel = ssh.invoke_shell()channel.send('cd /mytargetRepn')channel.send('echo unique-string-separating-output-of-the-commandsn')channel.send('./executeWhatIWantn')

尽管我并不是真的认为您经常需要它。使特定命令正常工作所需的大多数命令(例如

cd
或)
set
实际上不会输出任何内容。

因此,在大多数情况下,您可以使用

SSHClient.exec_command
并且您的代码将更简单,更可靠:
在Paramiko中执行多个命令,以使命令受其前辈的影响

即使您需要使用看起来像

su
/的复杂对象
sudo
,还是最好坚持使用
SSHClient.exec_command

使用Python在SSH中使用“ su -l”执行命令




欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5653256.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存