我正在开发一个 python脚本,该脚本重新引导 cisco路由器(访问点),并且我想捕获引导日志。
但是我无法为reboot log
设置标题。
设备重新启动时,我试图以这种方式使用子流程模块:
output=subprocess.Popen(ap1.reload_ap(), stdout=subprocess.PIPE).communicate()[0]
ap1.reload_ap()
将重新启动设备,但不返回任何内容。
因此,我尝试通过subprocess.PIPE
执行脚本后,将进程输出重定向到标准输出,以便在终端上显示启动日志。
但是我无法使用子进程跟踪此启动日志。
是否有其他方法可以将AP启动日志捕获到终端?
答案 0 :(得分:1)
重新引导系统始于对reboot的系统/内核调用,这就是您的所有过程,整个重新引导过程都发生在内核空间中,这实际上超出了您运行的Python脚本的范围在用户空间中。
所以:
output=subprocess.Popen(ap1.reload_ap(),stdout=subprocess.PIPE).communicate()[0]
您将只能看到重新启动系统调用的输出,仅此而已。
另一方面,在系统关闭所有进程之前终止Python解释器的可能性很高。
您应该阅读How does the system shutdown of a Linux kernel work internally?以获得更好的理解。
您无法以所需的方式获取日志,但是系统仍会生成日志,因此您可以在重启完成后使用Python读取此类日志。这可能会有所帮助:How to find out from the logs what caused system shutdown?