一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

异常程序处理方法、系统、终端及存储介质与流程

2022-03-05 10:16:45 来源:中国专利 TAG:


1.本发明涉及服务器技术领域,具体涉及一种异常程序处理方法、系统、终端及存储介质。


背景技术:

2.目前业界在进行板卡生产诊断测试,普遍使用linux系统测试。测试过程中,可能因为某些异常原因导致测试程序卡死,或异常退出。此类场景下,绝大多数异常输出信息不能有效保存,给问题分析及场景复现增加难度。那么有没有一种方式可以保存程序异常时的控制台输出到测试日志,随同测试失败日志一起保存备份呢。此问题的难点在于,程序已经卡死或者退出,不能触发后续的异常处理及异常日志保存。此时我们有两个问题需要攻克,1.程序卡死时如何终止,继续触发异常处理;2.异常时的控制台输出信息如何保存。
3.程序卡死,首先需要处理的是如何主动杀死程序,那就需要另外设置一个监控进程,实时监视程序运行状态,这种方案实现上复杂度高,实际使用效果并不理想。linux系统可以通过“&》”命令将程序控制台输出保存到日志,但是程序卡死时不能继续进行后续处理。


技术实现要素:

4.针对现有技术的上述不足,本发明提供一种异常程序处理方法、系统、终端及存储介质,以解决上述技术问题。
5.第一方面,本发明提供一种异常程序处理方法,包括:
6.通过安全外壳协议自调用访问本机环境,创建控制台;
7.通过自动化交互套件建立所述控制台与目标程序的自动交互关系;
8.通过所述控制台获取目标程序的输出信息并将所述输出信息保存至指定路径;
9.在控制台设置超时时间阈值,以使控制台在获取到目标程序的超时时间达到所述超时时间阈值时终止所述目标程序。
10.进一步的,通过安全外壳协议自调用访问本机环境,创建控制台,包括:
11.如果本地环境需要输入密码登录,则通过自动化交互套件输入密码自动登录;
12.根据控制台输出的信息校验登录是否成功。
13.进一步的,通过自动化交互套件建立所述控制台与目标程序的自动交互关系,包括:
14.向控制台输入目标程序的配置路径,以使控制台发送指令进入目标程序所在路径。
15.进一步的,所述方法还包括:
16.解析控制台获取的输出信息,如果根据所述输出信息确认目标程序执行完毕,则发送退出自动化交互套件交换环境指令。
17.第二方面,本发明提供一种异常程序处理系统,包括:
18.基础搭建单元,用于通过安全外壳协议自调用访问本机环境,创建控制台;
19.交互建立单元,用于通过自动化交互套件建立所述控制台与目标程序的自动交互关系;
20.信息保存单元,用于通过所述控制台获取目标程序的输出信息并将所述输出信息保存至指定路径;
21.程序终止单元,用于在控制台设置超时时间阈值,以使控制台在获取到目标程序的超时时间达到所述超时时间阈值时终止所述目标程序。
22.进一步的,所述基础搭建单元包括:
23.自动登录模块,用于如果本地环境需要输入密码登录,则通过自动化交互套件输入密码自动登录;
24.登录校验模块,用于根据控制台输出的信息校验登录是否成功。
25.进一步的,所述交互建立单元包括:
26.路径配置模块,用于向控制台输入目标程序的配置路径,以使控制台发送指令进入目标程序所在路径。
27.进一步的,所述系统还包括:
28.监控终止模块,用于解析控制台获取的输出信息,如果根据所述输出信息确认目标程序执行完毕,则发送退出自动化交互套件交换环境指令。
29.第三方面,提供一种终端,包括:
30.处理器、存储器,其中,
31.该存储器用于存储计算机程序,
32.该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
33.第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
34.本发明的有益效果在于,本发明提供的异常程序处理方法、系统、终端及存储介质,通过安全外壳协议自调用访问本机环境创建控制台并通过自动化交互套件建立所述控制台与目标程序的自动交互关系,然后通过控制台获取目标程序的输出信息并将所述输出信息保存至指定路径,同时在控制台设置超时时间阈值,以使控制台在获取到目标程序的超时时间达到所述超时时间阈值时终止所述目标程序。本发明使用简单自调用及expect交互方式,代替监控进程实时监测程序运行状态的方式,解决程序异常卡死时的后续异常处理触发,以及程序异常时的控制台输出信息保存难题,完整的展现异常现象,降低异常问题分析难度。
35.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
36.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1是本发明一个实施例的方法的示意性流程图。
38.图2是本发明一个实施例的系统的示意性框图。
39.图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
40.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
41.下面对本发明中出现的关键术语进行解释。
42.cpu中央处理器(central processing unit,简称cpu)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
43.控制台程序是为了兼容dos程序而设立的,这种程序的执行就好像在一个dos窗口中执行一样,没有自己的界面。所谓的控制台应用程序,就是能够运行在ms-dos环境中的程序。控制台应用程序通常没有可视化的界面,只是通过字符串来显示或者监控程序。控制台程序常常被应用在测试、监控等用途,用户往往只关心数据,不在乎界面。intel的cpu有三种工作模式,实模式,保护模式,虚拟模式。实模式是16位的,在这种模式下可工作纯dos。保护模式是32位的,windows就工作在这种模式下,为了使在32位保护模式下工作的windows可兼容16位实模式下的dos程序,又设立了虚拟模式,就是控制台程序。
44.ssh为secure shell的缩写,由ietf的网络小组(network working group)所制定;ssh为建立在应用层基础上的安全协议。ssh是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用ssh协议可以有效防止远程管理过程中的信息泄露问题。ssh最初是unix系统上的一个程序,后来又迅速扩展到其他操作平台。ssh在正确使用时可弥补网络中的漏洞。ssh客户端适用于多种平台。几乎所有unix平台—包括hp-ux、linux、aix、solaris、digital unix、irix,以及其他平台,都可运行ssh。从客户端来看,ssh提供两种级别的安全验证。第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到ssh服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒。
45.图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种异常程序处理系统。
46.如图1所示,该方法包括:
47.步骤110,通过安全外壳协议自调用访问本机环境,创建控制台;
48.步骤120,通过自动化交互套件建立所述控制台与目标程序的自动交互关系;
49.步骤130,通过所述控制台获取目标程序的输出信息并将所述输出信息保存至指定路径;
50.步骤140,在控制台设置超时时间阈值,以使控制台在获取到目标程序的超时时间达到所述超时时间阈值时终止所述目标程序。
51.为了便于对本发明的理解,下面以本发明异常程序处理方法的原理,结合实施例中对异常程序进行处理的过程,对本发明提供的异常程序处理方法做进一步的描述。
52.具体的,所述异常程序处理方法包括:
53.s1、通过安全外壳协议自调用访问本机环境,创建控制台。通过自动化交互套件建立所述控制台与目标程序的自动交互关系。
54.expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。expect自动交互流程:spawn启动指定进程
‑‑‑
expect获取指定关键字
‑‑‑
send向指定程序发送指定字符
‑‑‑
执行完成退出.注意该脚本能够执行的前提是安装了expect。
55.通过ssh自调用访问本机环境,另起控制台,并保存控制台输出,通过expect解析交互命令,实现新控制台自动交互。
56.如果本地环境需要输入密码登录,则通过自动化交互套件输入密码自动登录;根据控制台输出的信息校验登录是否成功。
57.如果本地环境需要输入密码登录,我们可通过expect交互命令自动实现输入密码自动登录:
58.expect"password:";
‑‑‑
遇到控制台“password:”关键字
59.send"密码\r";
‑‑‑
发送密码并回车
60.通过解析控制台输出判断是否已登录:
61.expect"~]#";
‑‑‑
不同os登录后的控制台输出并不一样,此处仅是样例。
62.向控制台输入目标程序的配置路径,以使控制台发送指令进入目标程序所在路径。发送指令进入执行程序所在目录,假设程序在/diag/文件夹下:
63.send"cd/diag/\r";
64.s3、通过所述控制台获取目标程序的输出信息并将所述输出信息保存至指定路径。
65.目标程序执行过程中会生成输出信息,以执行lscpu,展示cpu信息举例:
66.expect"diag]#";
‑‑‑
解析控制台输出已进入diag目录
67.send"lscpu\r";
‑‑‑
发送lscpu指令并回车。
68.执行lscpu指令得到cpu信息,cpu信息即为程序的输出信息,控制台在diag目录下获取cpu信息。lscpu从sysfs和/proc/cpuinfo收集cpu体系结构信息,命令的输出比较易读命令输出的信息包含cpu数量,线程,核数,套接字和nom-uniform memeor access(numa),缓存等不是所有的列都支持所有的架构,如果指定了不支持的列,那么lscpu将打印列,但不显示数据。
69.程序执行完毕,发送退出expect指令退出,并保存控制台输出信息expect"diag]#";
‑‑‑
解析控制台输出,确认程序已执行完毕send"exit\r";
‑‑‑
发送退出expect交换环境指令eof
70.}|tee lscpu.txt
‑‑‑
保存交互输出到lscpu.txt文件
71.交互输出日志信息lscpu.txt内容同步保存到测试日志中上传日志服务器保存备份。
72.s4、在控制台设置超时时间阈值,以使控制台在获取到目标程序的超时时间达到所述超时时间阈值时终止所述目标程序。
73.设置超时时间60秒(此处60秒仅是样例,时间根据要执行程序运行时间指定),如果超出指定时间,程序自动终止:
74.{/usr/bin/expect《《eof
75.set timeout 60
‑‑‑
设置超时时间60秒
76.‘
spawn ssh localhost。
77.本发明通过设置expect执行时间来解决程序卡死问题,如果超过指定expect执行时间,程序自动终止,无需另外设置监控进程。
78.本发明通过保存expect交互日志,解决异常日志保存问题
79.{
80./usr/bin/expect《《eof
81.......
82.eof
83.}|tee lscpu.txt
84.本实施例通过安全外壳协议自调用访问本机环境创建控制台并通过自动化交互套件建立所述控制台与目标程序的自动交互关系,然后通过控制台获取目标程序的输出信息并将所述输出信息保存至指定路径,同时在控制台设置超时时间阈值,以使控制台在获取到目标程序的超时时间达到所述超时时间阈值时终止所述目标程序。本发明使用简单自调用及expect交互方式,代替监控进程实时监测程序运行状态的方式,解决程序异常卡死时的后续异常处理触发,以及程序异常时的控制台输出信息保存难题,完整的展现异常现象,降低异常问题分析难度
85.如图2所示,该系统200包括:
86.基础搭建单元210,用于通过安全外壳协议自调用访问本机环境,创建控制台;
87.交互建立单元220,用于通过自动化交互套件建立所述控制台与目标程序的自动交互关系;
88.信息保存单元230,用于通过所述控制台获取目标程序的输出信息并将所述输出信息保存至指定路径;
89.程序终止单元240,用于在控制台设置超时时间阈值,以使控制台在获取到目标程序的超时时间达到所述超时时间阈值时终止所述目标程序。
90.可选地,作为本发明一个实施例,所述基础搭建单元包括:
91.自动登录模块,用于如果本地环境需要输入密码登录,则通过自动化交互套件输入密码自动登录;
92.登录校验模块,用于根据控制台输出的信息校验登录是否成功。
93.可选地,作为本发明一个实施例,所述交互建立单元包括:
94.路径配置模块,用于向控制台输入目标程序的配置路径,以使控制台发送指令进入目标程序所在路径。
95.可选地,作为本发明一个实施例,所述系统还包括:
96.监控终止模块,用于解析控制台获取的输出信息,如果根据所述输出信息确认目标程序执行完毕,则发送退出自动化交互套件交换环境指令。
97.图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的异常程序处理方法。
98.其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
99.其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
100.处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(central processing unit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
101.通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
102.本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
103.因此,本发明通过安全外壳协议自调用访问本机环境创建控制台并通过自动化交互套件建立所述控制台与目标程序的自动交互关系,然后通过控制台获取目标程序的输出信息并将所述输出信息保存至指定路径,同时在控制台设置超时时间阈值,以使控制台在获取到目标程序的超时时间达到所述超时时间阈值时终止所述目标程序。本发明使用简单自调用及expect交互方式,代替监控进程实时监测程序运行状态的方式,解决程序异常卡死时的后续异常处理触发,以及程序异常时的控制台输出信息保存难题,完整的展现异常现象,降低异常问题分析难度,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
104.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
105.本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
106.在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
107.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
108.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
109.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献