def exec_command(self, cmd, indata=None, timeout=30):
logger.info("Executing command: {0}".format(cmd))
if self.transport is None or self.transport.is_active() is False:
self.reconnect()
if self.transport is None or self.transport.is_active() is False:
logger.error("connection failed.")
return -1, None
input_data = self.__fix_indata(indata)
try:
session = self.transport.open_session()
session.set_combine_stderr(True)
session.get_pty()
session.exec_command(cmd)
except paramiko.SSHException as ex:
logger.error("Exception for command '{0}: {1}'".format(cmd, ex))
session.close()
return -1, None
output = self.poll(session, timeout, input_data)
status = session.recv_exit_status()
logger.info("Returned status {0}".format(status))
session.close()
return status, output
评论列表
文章目录