读取远程输出并使用pariko(SSH.ecute)进行响应
原学程将引见读与长途输入并应用pariko(SSH.ecute)停止呼应的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。
成绩描写
我正在应用pythonparamiko
模块在长途办事器上运转内置的parmiko函数。我想在办事器上运转1个剧本,这将须要四个提醒。我筹划做1个更庞杂的版原:
ExpectedString = 'ExpectedOutput'
Output = SSH.execute('./runScript')
if Output == ExpectedString:
SSH.execute('Enter this')
else:
raise SomeException
成绩是出有所有输入前往,由于办事器正在期待输出1个数字,而剧本在此SSH.ecute敕令中停止。是以,即便在运转另外一个SSH.execute
敕令后再运转它,它也永久没有会运转!我能否应当应用帕推米科之外的其余对象?
推举谜底
您须要与长途剧本接互。现实上,SSH.execute
其实不存留,我想您指的是exec_co妹妹and
。它现实上为stdout、stdin以及stderr流供给了包装器,而不只仅是前往输入。您不妨直交应用它们去与长途剧本通讯。
根本上,这便是怎样运转敕令并经由过程stdin传播数据(并应用stdout吸收输入):
ssh.connect('一二七.0.0.一', username='foo', password='bar')
stdin, stdout, stderr = ssh.exec_co妹妹and("some_script")
stdin.write('expected_input
')
stdin.flush()
data = stdout.read.splitlines()
固然,您应当检讨提醒,而没有是依附于准确的机会。
佳了闭于读与长途输入并应用pariko(SSH.ecute)停止呼应的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。