2016-12-23 19 views
0

ssh 세션에서 명령을 실행하려고합니다. 이 명령은 1 시간 이상 걸리고 있습니다. (파일 세트를 거의 설치하지 않음). 이제 스크립트에서 명령을 시작할 수 있지만 오류 메시지 아래에 몇 분이 지나면 오류가 발생합니다.pxssh를 사용하여 시간 초과 값을 늘릴 수 없습니다.

파일 "./return.py", 라인 (32), CHECKFILESTATUS에서 s.logout() 파일 "/usr/lib/python2.7/site-packages/pexpect-4.2.0-py2.7. ("EOF,"(? i) 정지 된 작업이 있습니다. "]) 파일"/usr/lib/python2.7/site-pexpect/pxssh.py ", 라인 350, 로그 아웃 색인 = self.expect packages/pexpect-4.2.0-py2.7.egg/pexpect/spawnbase.py ", 줄 321, 예상치 timeout, searchwindowsize, async) 파일"/usr/lib/python2.7/site-packages/pexpect -4.2.0-py2.7.egg/pexpect/spawnbase.py ", 345 행, expect_list에서 return exp.expect_loop (시간 초과) 파일"/usr/lib/python2.7/site-packages/pexpect-4.2 .0-py2.7.egg/pexpect/expect.py ", 107 행, expect_loop return 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/license 디렉토리 \ 012 \ n \(마지막 100 자) : 'eement acceptance'로 볼 수 있습니다. 경기 : 없음 match_index : 없음 exitstatus : 없음 flag_eof : 4289 child_fd : 거짓 PID 닫은 후 당신은/ITM은/LAP/라이센스 디렉토리 \ 연구 \ n을 '에서 라이센스 파일의 세부 정보를 볼 수 있습니다 : 거짓 제한 시간 : 30 구분 : 로그 파일 : 없음 logfile_read : 없음 logfile_send : 없음 maxread : 2000 IGNORECASE : 거짓 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() 

이 시간 제한 문제를 해결하기위한 제안이 있으십니까?

답변

0

내가

s = pxssh.pxssh(timeout=7200) 

소스를 보면 트릭

을해야한다고 생각의 pxssh 생성자는 키워드 인수로 timeout 소요 시간 제한 (나는 초 같은데요)로 설정합니다.

데프 초기화 (자기, 제한 시간 = 30, maxread = 2000, searchwindowsize = 없음, 로그 파일 = 없음, CWD = 없음, ENV = 없음, ignore_sighup = 사실은, 에코 없다 = 사실, 옵션 = { }, 인코딩 = 없음, codec_errors = '엄격한') :

+0

안녕하세요, 그것은 나를 위해 일했습니다. 빠른 답변을드립니다.:) – user7146457

+0

아무런 문제가 없습니다. 도움이된다면 대답을 받아 들여주세요. 다른 사람들도 도움이 될 수 있습니다. – Bitonator

관련 문제