首页 文章

使用pxssh无法增加超时值

提问于
浏览
0

我试图通过ssh会话运行命令 . 这个命令需要1个多小时 . 完成(安装几个文件集) . 现在我的脚本能够启动命令,但是,它在几分钟后失败,具有以下错误消息 .

文件“./return.py”,第32行,在CHECKFILESTATUS s.logout()文件“/usr/lib/python2.7/site-packages/pexpect-4.2.0-py2.7.egg/pexpect/pxssh . py“,第350行,在注销索引中= self.expect([EOF,”(?i)有停止的作业“])文件”/usr/lib/python2.7/site-packages/pexpect-4.2.0- py2.7.egg / pexpect / spawnbase.py“,第321行,在期望超时,searchwindowsize,async)文件”/usr/lib/python2.7/site-packages/pexpect-4.2.0-py2.7.egg /pexpect/spawnbase.py“,第345行,在expect_list中返回exp.expect_loop(timeout)文件”/usr/lib/python2.7/site-packages/pexpect-4.2.0-py2.7.egg/pexpect/expect .py“,第107行,在expect_loop中返回self.timeout(e)文件”/usr/lib/python2.7/site-packages/pexpect-4.2.0-py2.7.egg/pexpect/expect.py“,第70行,在超时时提高TIMEOUT(msg)pexpect.exceptions.TIMEOUT:超出超时 . 命令:/ bin / ssh args:['/ bin / ssh',' - q',' - l','xxxx','sys']缓冲区(最后100个字符):'eement acceptance . 您可以在/ ITM / LAP /许可证目录\ r \ n'之前查看许可证文件详细信息(最后100个字符):'eement acceptance . 您可以在以下后查看/ ITM / LAP /许可证目录\ r \ n'中的许可证文件详细信息:match:无match_index:无exitstatus:无flag_eof:False pid:4289 child_fd:5已关闭:False超时:30分隔符:logfile :无logfile_read:无logfile_send:无maxread:2000 ignorecase:False searchwindowsize:无delaybeforesend:0.05 delayafterclose:0.1 delayafterterminate:0.1 searcher:searcher_re:0:EOF 1:re.compile(“(?i)有停止的作业”) .

enter code here
#!/bin/python
import pexpect
import netrc
from pexpect import pxssh,TIMEOUT

LPAR = 'VI'
secrets = netrc.netrc()
ID, MC, PD = secrets.authenticators( LPAR )
hostname = raw_input('hostname: ')

def CHECKFILESTATUS(command):
global hostname
global ID
global PD

    try:
        s = pxssh.pxssh()
        hostname = hostname
        username = ID
        password = PD
        s.login(hostname, username, password)
        s.sendline(command)
        s.prompt()
        print s.before
        s.logout()
    except pxssh.ExceptionPxssh, e:
        print("pxssh failed on login.")
        print(e)


def main():
CHECKFILESTATUS('updateios -dev /mnt/V -install -accept')


if __name__ == '__main__':
 main()

有任何解决这个超时问题的建议吗?

1 回答

  • 0

    我认为

    s = pxssh.pxssh(timeout=7200)
    

    应该做的伎俩

    查看源代码, pxssh 构造函数将 timeout 作为关键字参数并设置超时(我猜是以秒为单位) .

    def init(self,timeout = 30,maxread = 2000,searchwindowsize = None,logfile = None,cwd = None,env = None,ignore_sighup = True,echo = True,options = {},encoding = None,codec_errors ='严格'):

相关问题