2016-10-02 2 views
2

CentOS에서 몇 가지 구성 단계를 자동화하고 있습니다. 그렇게하기 위해서는 시스템을 재부팅해야합니다. 나는 파이썬 pexepct를 통해 "재부팅"명령을 호출하지만 나머지 시스템이 실행될 때까지 시스템을 부팅 할 때까지 기다려야합니다. 이를 위해이 작은 코드를 작성했습니다.Python pexpect 서버가 켜져 있는지 확인하십시오.

while True: 
     result = commands.getoutput("ping -c 4 192.168.36.134") 
     if result.find("Unreachable") == 1: 
      result = False 
      print 'Rebooting the Systems.' 
     else: 
      result = True 
      print 'Connected!' 
      break 

더 좋은 방법이 있습니까? 또한, 우리는 pexepct 자체로 이것을 달성 할 수 있습니까?

답변

3

이 작업을 시도 할 수 있습니다 :

import socket 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
# wait host to finish reboot, check specific port connection (usually ssh port if you want to exec remote commands) 
while True: 
    try: 
     s.connect(('hostname', 22)) 
     print "Port 22 reachable" 
     break 
    except socket.error as e: 
     print "rebooting..." 
# continue 
s.close() 

이 예는 더 효과적이다 다음 핑

를 사용하여
관련 문제