PING:
import os
ip=1.1.1.1
o=os.system("ping "+ip)
time.sleep(10)
print(o)
if res == 0:
print(ip,"is active")
的Telnet:
tn = telnetlib.Telnet(IP)
tn.write(command+"\r\n")
f=open(filename,w)
while True:
response = tn.read_until("\n")
f.write(response)
这里,在IP之间下降。在那段时间我需要ping那个IP&无论什么时候出现,我都需要再次开始收集日志。我怎么能这样做?
实际上,我需要通过telnet收集日志(这是无限期的)。我能够做到。在此过程中,我正在收集日志的IP将关闭。所以,我需要跟踪这个IP(Ping)。每当IP再次出现时,我就会再次开始收集日志。如果你能帮助我,那就太好了。
我找到了解决方案:
tn=telnetlib.Telnet(IP)
tn.write(command+"\r\n")
f=open(filename,w)
while (os.system("ping -n 1 IP") == 0):
response = tn.read_until("\n")
f.write(response)
else:
call some module for telnetting again/goto
But, here is it possible to hide the console when we use (os.system(ping)). I know it can be done through subprocess. But since os.system is a one liner & very easy to verifY the result also.
答案 0 :(得分:0)
也许pexpect是你正在寻找的东西?
此代码段将启动ping进程,并阻塞直到它看到"来自"的字节或者直到它超时(默认为1分钟):
import pexpect
def wait_until_online(host, timeout=60):
child = pexpect.spawn("ping %s" % host)
child.expect("bytes from", timeout)