CN109460310A - 基于web接口的信息收集系统、方法、设备及存储介质 - Google Patents

基于web接口的信息收集系统、方法、设备及存储介质 Download PDF

Info

Publication number
CN109460310A
CN109460310A CN201811171717.7A CN201811171717A CN109460310A CN 109460310 A CN109460310 A CN 109460310A CN 201811171717 A CN201811171717 A CN 201811171717A CN 109460310 A CN109460310 A CN 109460310A
Authority
CN
China
Prior art keywords
command
module
execution result
kernel
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811171717.7A
Other languages
English (en)
Other versions
CN109460310B (zh
Inventor
廖智明
柳曲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TP Link Technologies Co Ltd
Original Assignee
TP Link Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TP Link Technologies Co Ltd filed Critical TP Link Technologies Co Ltd
Priority to CN201811171717.7A priority Critical patent/CN109460310B/zh
Publication of CN109460310A publication Critical patent/CN109460310A/zh
Application granted granted Critical
Publication of CN109460310B publication Critical patent/CN109460310B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于WEB接口的信息收集系统、方法、设备及计算机可读存储介质,其系统包括:WEB模块,与进程打印信息监听模块连接,用于接收用户的输入操作,并根据输入操作生成命令内容,以将命令内容传输给进程打印信息监听模块;进程打印信息监听模块,与运行模块连接,用于接收命令内容,并将命令内容传输给运行模块;运行模块,用于接收并执行命令内容,以生成发送至串口控制台的执行结果;进程打印信息监听模块,还用于截获发送至串口控制台的执行结果,并保存执行结果;WEB模块,还用于发起数据请求,以向进程打印信息监听模块获取执行结果。本发明基于WEB接口进行输出信息的收集,保证信息输出的完整性与及时性。

Description

基于WEB接口的信息收集系统、方法、设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于WEB接口的信息收集系统、方法、设备及计算机可读存储介质。
背景技术
在现有的基于用户态、内核态的系统中,系统运行时用户态、内核态中各程序会通过串口控制台输出printf或者printk打印的信息,以便于诊断系统,而基于物理串口的可用性存在以下几种情况:第一种:用户态程序的运行输出在没有全天候连接物理串口的情况下,可通过TIOCCONS系统调用的方法将信息重定向并保存在特定区域,伺机输出;第二种:内核态程序的运行输出信息没有全天候连接物理串口的情况下,存储在内核环缓冲区内,可用dmesg工具记录和输出;第三种:在没有条件接入物理串口的情况下,通过远程执行命令或者伪终端方式接入系统获取信息,例如基于Luci的webshell、Telnet、SSH等远程终端。
但是在实现本发明的过程中,发明人发现:以上第一种情况中,存在获取不到脚本或者程序通过直接写设备文件方式输出到串口的信息;在上述的第二种情况中,在系统发生kernel panic重启或者死机情况下,dmesg无法记录重启前输出的关键信息;在上述第三种情况中,webshell仅是可执行shell命令,而无法执行某些自带命令行的用户程序;Telnet、SSH等终端仅能够执行命令、回显命令的输出,但无法实时回显其他程序、脚本甚至系统内核的输出。
发明内容
针对上述问题,本发明的目的在于提供一种基于WEB接口的信息收集系统、方法、设备及计算机可读存储介质,基于WEB接口进行输出信息的收集,保证信息输出的完整性与及时性。
第一方面,本发明实施例提供了一种基于WEB接口的信息收集系统,包括WEB模块、进程打印信息监听模块以及运行模块;其中,
所述WEB模块,与所述进程打印信息监听模块连接,用于接收用户的输入操作,并根据所述输入操作生成命令内容,以将所述命令内容传输给所述进程打印信息监听模块;
所述进程打印信息监听模块,与所述运行模块连接,用于接收所述命令内容,并将所述命令内容传输给所述运行模块;
所述运行模块,用于接收并执行所述命令内容,以生成发送至串口控制台的执行结果;
所述进程打印信息监听模块,还用于截获发送至串口控制台的所述执行结果,并保存所述执行结果;
所述WEB模块,还用于发起数据请求,以向所述进程打印信息监听模块获取所述执行结果。
在第一方面的第一种实现方式中,
所述WEB模块包括WEB前端子模块以及WEB后台子模块;
所述进程打印信息监听模块包括内核态子模块;
所述WEB前端子模块包括按键响应单元以及命令提交单元;
所述WEB后台子模块包括第一命令输入单元;
所述内核态子模块包括第二命令输入单元;
所述按键响应单元,与所述命令提交单元连接,用于接收用户的输入操作,将所述输入操作传输给所述命令提交单元;
所述命令提交单元,与所述第一命令输入单元连接,用于接收所述输入操作,根据所述输入操作生成命令内容,将所述命令内容保存至命令队列,并将所述命令内容发送给所述第一命令输入单元;
所述第一命令输入单元,与所述第二命令输入单元连接,用于接收所述命令内容,并将所述命令内容写入所述第二命令输入单元;
所述第二命令输入单元,与所述运行模块连接,用于获取所述命令内容,将所述命令内容传输给所述运行模块。
根据第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述运行模块包括解析子模块、串口命令运行子模块以及内核调试子模块;
所述命令内容的类型包括串口命令以及内核函数调用命令;
所述第二命令输入单元,与所述解析子模块连接,具体用于获取所述命令内容,将所述命令内容传输给所述解析子模块;
所述解析子模块,与所述串口命令运行子模块连接,用于当判断所述命令内容为串口命令时,将所述命令内容传输给所述串口命令运行子模块;
所述解析子模块,与所述内核调试子模块连接,还用于当判断所述命令内容为内核函数调用命令时,将所述命令内容传输给所述内核调试子模块;
所述串口命令运行子模块,用于接收并执行所述命令内容,以生成发送至串口控制台的执行结果;
所述内核调试子模块,用于接收并执行所述命令内容,以生成发送至串口控制台的执行结果。
根据第一方面的第二种实现方式,在第一方面的第三种实现方式中,所述内核调试子模块包括用户态调试单元以及内核态调试单元;
所述用户态调试单元包括命令解析子单元,数据包发送子单元以及执行结果回显子单元;
所述内核态调试单元包括内核符号定位子单元、命令执行子单元以及执行结果回送子单元;
所述解析子模块,与所述命令解析子单元连接,具体用于当判断所述命令内容为内核函数调用命令时,将所述命令内容传输给所述命令解析子单元;
所述命令解析子单元,与所述数据包发送子单元连接,用于接收所述解析子模块传输的所述命令内容,对所述命令内容进行合法性检查以及语法语义解析,以将所述命令内容转换为含有语法语义信息的语法树,并将所述语法树传输给所述数据包发送子单元;
所述数据包发送子单元,与所述命令执行子单元连接,用于接收所述语法树,并将所述语法树构造成数据包,将所述数据包写入所述命令执行子单元中;
所述命令执行子单元,与所述内核符号定位子单元连接,用于根据所述数据包确定内核符号名(内核函数名),以将所述内核符号名(内核函数名)传输给所述内核符号定位子单元;
所述内核符号定位子单元,用于接收所述内核符号名(内核函数名),根据所述内核符号名(内核函数名)查找内核符号表,以定位所述内核符号名(内核函数名)对应的内核符号地址,向所述命令执行子单元返回所述内核符号地址;
所述命令执行子单元,与所述执行结果回送子单元连接,还用于接收所述内核符号地址,并根据所述内核符号地址执行相应的内核函数,以获取发送至所述执行结果回送子单元的所述执行结果;
所述执行结果回送子单元,与所述执行结果回显子单元连接,用于接收并存储所述执行结果,同时将所述执行结果返回给所述执行结果回显子单元;
所述执行结果回显子单元,用于当所述执行结果回送子单元返回所述执行结果时,读取所述执行结果,以通过printf函数输出。
根据第一方面的第三种实现方式,在第一方面的第四种实现方式中,所述内核态子模块还包括信息监听单元;
所述信息监听单元,与所述执行结果回显子单元连接,用于截获所述执行结果回显子单元以printf函数输出的所述执行结果,并将所述执行结果保存至日志文件中;
所述信息监听单元,与所述串口命令运行子模块连接,还用于截获所述串口命令运行子模块发送至串口控制台的所述执行结果,并将所述执行结果保存至日志文件中。
根据第一方面的第四种实现方式,在第一方面的第五种实现方式中,所述WEB前端子模块还包括结果回显单元;
所述WEB后台子模块还包括执行结果获取单元;
所述结果回显单元,与所述执行结果获取单元接,用于向所述执行结果获取单元发起数据请求;
所述执行结果获取单元,与所述信息监听单元连接,用于根据所述数据请求读取所述日志文件,以获取所述执行结果,并将所述执行结果发送给所述结果回显单元。
根据第一方面的第四种实现方式,在第一方面的第六种实现方式中,所述内核态子模块还包括挂钩子单元;
所述挂钩子单元,用于通过修改内核串口驱动,挂接所述信息监听单元所对应的钩子函数,或者解挂所述信息监听单元所对应的钩子函数。
根据第一方面的第四种实现方式,在第一方面的第七种实现方式中,所述进程打印信息监听模块还包括用户态子模块;
所述用户态子模块,与所述信息监听单元连接,用于定期扫描所述日志文件,当检测到没有压缩的所述日志文件时,压缩并存储所述日志文件;
所述内核态子模块还包括信息存储单元;
所述信息存储单元,与所述信息监听单元连接,用于当检测到当前系统状态为panic状态时,将所述日志文件中的所有数据写入Flash设备中。
第二方面,本发明实施例提供了一种基于WEB接口的信息收集方法,包括以下步骤:
通过WEB模块接收用户的输入操作,并根据所述输入操作生成命令内容;
将所述命令内容传输给运行模块;其中,所述命令内容用于触发所述运行模块执行所述命令内容,以生成发送至串口控制台的执行结果;
截获发送至串口控制台的所述执行结果,并保存所述执行结果;
当检测到所述WEB模块发起数据请求时,向所述WEB模块返回所述执行结果。
第三方面,本发明实施例提供了一种基于WEB接口的信息收集设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如第二方面所述的基于WEB接口的信息收集方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如第二方面所述的基于WEB接口的信息收集方法。
以上实施例具有如下有益效果:
通过WEB模块获取用户的输入操作并生成命令内容,以通过所述进程打印信息监听模块将所述命令内容传输给所述运行模块,在所述运行模块接收并执行所述命令内容,以生成发送至串口控制台的执行结果之后,所述进程打印信息监听模块截获发送至串口控制台的所述执行结果,并保存所述执行结果,并在所述WEB模块发起数据请求时返回所述执行结果,所述进程打印信息监听模块通过截取进程(包括用户态和内核态)的输出流,并提供了WEB接口,使得用户能够通过WEB接口获取所述进程打印信息监听模块获取的所有信息,避免因物理串口的不可用性导致的问题,提高用户获取信息的便捷性,也保证信息输出的完整性与及时性,提高用户的使用体验。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的基于WEB接口的信息收集系统的结构示意图。
图2是本发明第一实施例提供的另一个基于WEB接口的信息收集系统的结构示意图。
图3是本发明第一优选实施例提供的基于WEB接口的信息收集系统的结构示意图。
图4是本发明第二实施例提供的基于WEB接口的信息收集方法的流程示意图。
图5是本发明第三实施例提供的基于WEB接口的信息收集设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明第一实施例提供了一种基于WEB接口的信息收集系统10,包括WEB模块20、进程打印信息监听模块30以及运行模块40。其中,
所述WEB模块20,与所述进程打印信息监听模块30连接,用于接收用户的输入操作,并根据所述输入操作生成命令内容,以将所述命令内容传输给所述进程打印信息监听模块30。
所述进程打印信息监听模块30,与所述运行模块40连接,用于接收所述命令内容,并将所述命令内容传输给所述运行模块40。
所述运行模块40,用于接收并执行所述命令内容,以生成发送至串口控制台的执行结果。
所述进程打印信息监听模块30,还用于截获发送至串口控制台的所述执行结果,并保存所述执行结果。
所述WEB模块20,还用于发起数据请求,以向所述进程打印信息监听模块30获取所述执行结果。
在本发明实施例中,请参阅图2,所述WEB模块20包括WEB前端子模块21以及WEB后台子模块22,所述进程打印信息监听模块30包括内核态子模块31,所述运行模块40包括解析子模块41、串口命令运行子模块42以及内核调试子模块43,所述内核调试子模块43包括用户态调试单元431以及内核态调试单元432。
在本发明实施例中,所述WEB前端子模块21,与所述WEB后台子模块22连接,用于接收用户的输入操作,并根据所述输入操作生成命令内容,以将所述命令内容传输给所述WEB后台子模块22;所述WEB后台子模块22,与所述内核态子模块31连接,用于接收所述命令内容,并将所述命令内容写入所述内核态子模块31;所述内核子模块,与所述解析子模块41连接,用于接收所述命令内容并将所述命令内容传输给所述解析子模块41;所述解析子模块41,与所述串口命令运行子模块42连接,用于当判断所述命令内容为串口命令时,将所述命令内容传输给所述串口命令运行子模块42;所述串口命令运行子模块42,用于接收并执行所述命令内容,以生成发送至串口控制台的执行结果;所述解析子模块41,与所述内核调试子模块43连接,还用于当判断所述命令内容为内核函数调用命令时,将所述命令内容传输给所述内核调试子模块43;具体地,所述解析子模块41,与所述用户态调试单元431连接,还用于当判断所述命令内容为内核函数调用命令时,将所述命令内容传输给所述用户态调试单元431;所述用户态调试单元431,与所述内核态调试单元432连接,用于接收并解析所述命令内容,以生成发送至所述内核态调试单元432的数据包;所述内核态调试单元432,用于接收并执行所述数据包,并生成所述执行结果,存储所述执行结果并将所述执行结果返回给所述用户态调试单元431;所述用户态调试单元431,还用于接收所述执行结果,以发送至串口控制台;所述内核态子模块31,与所述用户态调试单元431连接,用于截获所述用户态调试单元431以printf函数输出的所述执行结果,并将所述执行结果保存至日志文件中;所述内核态子模块31,与所述串口命令运行子模块42连接,还用于截获所述串口命令运行子模块42发送至串口控制台的所述执行结果,并将所述执行结果保存至日志文件中;所述WEB前端子模块21,还用于向所述WEB后台子模块22发起数据请求;所述WEB后台子模块22,还用于根据所述数据请求读取所述日志文件,以获取所述执行结果,并将所述执行结果发送给所述WEB前端子模块21。
综上所述,本发明第一实施例提供了一种基于WEB接口的信息收集系统10,通过WEB模块20获取用户的输入操作并生成命令内容,以通过所述进程打印信息监听模块30将所述命令内容传输给所述运行模块40,在所述运行模块40接收并执行所述命令内容,以生成发送至串口控制台的执行结果之后,所述进程打印信息监听模块30截获发送至串口控制台的所述执行结果,并保存所述执行结果,并在所述WEB模块20发起数据请求时返回所述执行结果,所述进程打印信息监听模块30通过截取进程(包括用户态和内核态)的输出流,并提供了WEB接口,使得用户能够通过WEB接口获取所述进程打印信息监听模块30获取的所有信息,避免因物理串口的不可用性导致的问题,提高用户获取信息的便捷性,也保证信息输出的完整性与及时性,提高用户的使用体验。
为了便于对本发明的理解,下面将对本发明的一些优选实施例做更进一步的描述。
本发明第一优选实施例:
请参阅图3,在本发明第一实施例的基础上,所述WEB模块20包括WEB前端子模块21以及WEB后台子模块22。
所述进程打印信息监听模块30包括内核态子模块31。
所述WEB前端子模块21包括按键响应单元211以及命令提交单元212。
所述WEB后台子模块22包括第一命令输入单元221。
所述内核态子模块31包括第二命令输入单元311。
所述按键响应单元211,与所述命令提交单元212连接,用于接收用户的输入操作,将所述输入操作传输给所述命令提交单元212。
在本发明实施例,所述按键响应单元211具体用于捕捉用户在命令编辑框获得焦点时的击键事件,处理回车、方向上、方向下三个按键事件,所述按键响应单元211接收用户的按键事件,并根据所述按键事件获取在命令编辑框中相应的输入操作,若所述按键事件为回车事件,所述按键响应单元211将所述输入操作传输给所述命令提交单元212;若所述按键事件为方向上或方向下的按键事件,所述按键响应单元211通过所述命令提交单元212获取命令队列,并读取所述命令队列中的命令内容记录,并根据所述方向上或方向下的按键事件将命令内容记录对应显示于所述命令编辑框中。
所述命令提交单元212,与所述第一命令输入单元221连接,用于接收所述输入操作,根据所述输入操作生成命令内容,将所述命令内容保存至命令队列,并将所述命令内容发送给所述第一命令输入单元221。
在本发明实施例中,所述命令提交单元212用于接收回车事件的所述输入操作,根据所述输入操作生成命令内容,将所述命令内容保存至命令队列,并将所述命令内容发送给所述WEB后台子模块22的第一命令输入单元221。
所述第一命令输入单元221,与所述第二命令输入单元311连接,用于接收所述命令内容,并将所述命令内容写入所述第二命令输入单元311。
在本发明实施例中,所述第一命令输入单元221从WEB前端子模块21的所述命令提交单元212中获取用户输入的所述命令内容,并将所述命令内容写到所述内核态子模块31的第二命令输入单元311中。
所述第二命令输入单元311,与所述运行模块40连接,用于获取所述命令内容,将所述命令内容传输给所述运行模块40。
在本发明实施例中,所述第二命令输入单元311,具体用于获取所述命令内容,需要说明的是,所述命令内容以字符串的形式传输,所述第二命令输入单元311将所述命令内容插入到tty子系统的缓冲区中,需要说明的是,所述tty子系统用于简称各种类型的终端设备。
本发明第二优选实施例:
请参阅图2,在本发明第一优选实施例的基础上,所述运行模块40包括解析子模块41、串口命令运行子模块42以及内核调试子模块43。
所述命令内容的类型包括串口命令以及内核函数调用命令。
所述第二命令输入单元311,与所述解析子模块41连接,具体用于获取所述命令内容,将所述命令内容传输给所述解析子模块41。
所述解析子模块41,与所述串口命令运行子模块42连接,用于当判断所述命令内容为串口命令时,将所述命令内容传输给所述串口命令运行子模块42。
所述解析子模块41,与所述内核调试子模块43连接,还用于当判断所述命令内容为内核函数调用命令时,将所述命令内容传输给所述内核调试子模块43。
所述串口命令运行子模块41,用于接收并执行所述命令内容,以生成发送至串口控制台的执行结果。
所述内核调试子模块43,用于接收并执行所述命令内容,以生成发送至串口控制台的执行结果。
在本发明实施例,所述WEB模块20接收用户输入的两种命令类型,分别为串口命令以及内核函数调用命令,所述进程打印信息监听模块30接收到所述WEB模块20的命令内容,将所述命令内容传输给所述运行模块40的解析子模块41,例如在Linux系统,所述解析子模块41可为shell程序,所述进程打印信息监听模块30将所述命令内容传输给shell程序,所述解析子模块41对于接收的命令内容的类型进行判断,当判断所述命令内容为串口命令时,将所述命令内容传输给所述串口命令运行子模块42,由所述串口命令运行子模块42执行,以生成发送至串口控制台的执行结果,当判断所述命令内容为内核函数调用命令时,将所述命令内容传输给所述内核调试子模块43,由所述内核调试子模块43执行,以生成发送至串口控制台的执行结果;需要说明的是,所述执行结果在发送至串口控制台的过程中,被所述进程打印信息监听模块30所截获,实际上并没有真正送达串口控制台。
本发明第三优选实施例:
请参阅图3,在本发明第二优选实施例的基础上,所述内核调试子模块43包括用户态调试单元431以及内核态调试单元432。
所述用户态调试单元431包括命令解析子单元4311,数据包发送子单元4312以及执行结果回显子单元4313。
所述内核态调试单元432包括内核符号定位子单元4321、命令执行子单元4322以及执行结果回送子单元4323。
所述解析子模块41,与所述命令解析子单元4311连接,具体用于当判断所述命令内容为内核函数调用命令时,将所述命令内容传输给所述命令解析子单元4311。
所述命令解析子单元4311,与所述数据包发送子单元4312连接,用于接收所述解析子模块传输的所述命令内容,对所述命令内容进行合法性检查以及语法语义解析,以将所述命令内容转换为含有语法语义信息的语法树,并将所述语法树传输给所述数据包发送子单元4312。
在本发明实施例中,所述命令解析子单元4311从所述tty子系统的缓冲区中获取所述命令内容,对所述命令内容进行合法性检查以及语法语义解析,并将所述命令内容转换为含有语法语义信息的语法树。
所述数据包发送子单元4312,与所述命令执行子单元4322连接,用于接收所述语法树,并将所述语法树构造成数据包,将所述数据包写入所述命令执行子单元4322中。
在本发明实施例中,所述数据包发送子单元4312接收所述语法树,并将所述语法树转储到连续的内存空间中,并构造数据包,调用write函数将所述数据包写入所述命令执行子单元4322中。
所述命令执行单元4322,与所述内核符号定位单元4321连接,用于根据所述数据包确定内核符号名(内核函数名),以将所述内核符号名(内核函数名)传输给所述内核符号定位子单元4321。
在本发明实施例中,所述命令执行子单元4322,用于获取所述数据包发送子单元4312写入的所述数据包,解析所述数据包,并根据所述数据包获取内核符号名(内核函数名),以将所述内核符号名(内核函数名)传输给所述内核符号定位子单元4321。
所述内核符号定位子单元4321,用于接收所述内核符号名(内核函数名),根据所述内核符号名(内核函数名)查找内核符号表,以定位所述内核符号名(内核函数名)对应的内核符号地址,向所述命令执行子单元4322返回所述内核符号地址。
在本发明实施例中,所述内核符号定位子单元4321根据内核符号名(内核函数名)查找内核符号表,定位并返回该内核符号所在的地址。
所述命令执行子单元4322,与所述执行结果回送子单元4323连接,还用于接收所述内核符号地址,并根据所述内核符号地址执行相应的内核函数,以获取发送至所述执行结果回送子单元4323的所述执行结果。
在本发明实施例,所述命令执行子单元4322根据所述内核符号地址执行相应的内核函数,得到执行结果。所述命令执行子单元4322可以调用内核空间中所有导出的函数,包括编译进内核中的函数以及在内核模块中,被加载进内核的函数。函数参数可以带C语言变量名、函数名(需能够在内核符号表中找到)和C语言的表达式运算。
所述执行结果回送子单元4323,与所述执行结果回显子单元4313连接,用于接收并存储所述执行结果,同时将所述执行结果返回给所述执行结果回显子单元4313。
在本发明实施例中,所述执行结果回送子单元4323存储所述执行结果,并将所述执行结果返回给所述执行结果回显子单元4313。
所述执行结果回显子单元4313,用于当所述执行结果回送子单元4323返回所述执行结果时,读取所述执行结果,以通过printf函数输出。
在本发明实施例中,所述执行结果回显子单元4313在所述执行结果回送子单元4323返回执行结果时,将执行结果读取出来,通过printf函数的方式输出。
本发明第三优选实施例:
请参阅图3,在本发明第二优选实施例的基础上,所述内核态子模块31还包括信息监听单元312。
所述信息监听单元312,与所述执行结果回显子单元4313连接,用于截获所述执行结果回显子单元4313以printf函数输出的所述执行结果,并将所述执行结果保存至日志文件中。
所述信息监听单元312,与所述串口命令运行子模块42连接,还用于截获所述串口命令运行子模块42发送至串口控制台的所述执行结果,并将所述执行结果保存至日志文件中。
在本发明实施例中,需要说明的是,所述内核态子模块31还包括挂钩子单元313;所述挂钩子单元313,用于通过修改内核串口驱动,挂接所述信息监听单元312所对应的钩子函数,或者解挂所述信息监听单元312所对应的钩子函数,例如在Linux系统中,所述挂钩子单元313通过修改内核tty驱动,负责钩子函数的挂接和解挂。
在本发明实施例中,所述信息监听单元312被挂接到所述运行模块40输出所述执行结果的调用路径中,所述信息监听单元312截获所述执行结果回显子单元4313以及所述串口命令运行子模块42发送至串口控制台的所述执行结果,包括以printf函数、printk函数或者脚本方式输出的所述执行结果,并将所述执行结果保存至日志文件中,当所述日志文件大小达到阈值时,关闭当前日志文件,创建新的日志文件,例如在Linux系统中,所述信息监听单元312被挂接到内核tty子系统到serial子系统的调用路径中,所述信息监听单元312截获内核tty驱动向serial驱动发送的数据,并将数据保存到Log文件中。
本发明第四优选实施例:
请参阅图3,在本发明第三优选实施例的基础上,所述WEB前端子模块21还包括结果回显单元213。
所述WEB后台子模块22还包括执行结果获取单元222。
所述结果回显单元213,与所述执行结果获取单元222接,用于向所述执行结果获取单元222发起数据请求。
在本发明实施例,所述结果回显单元213向所述执行结果获取单元222发起请求,实时更新回显数据;在用户提交命令、手动刷新时,主动向所述执行结果获取单元222发起请求;否则,每隔一段时间定时向后端发起更新数据请求。
所述执行结果获取单元222,与所述信息监听单元312连接,用于根据所述数据请求读取所述日志文件,以获取所述执行结果,并将所述执行结果发送给所述结果回显单元213。
在本发明实施例中,所述执行结果获取单元222根据所述数据请求从所述信息监听单元312的所述日志文件中读取一定长度的执行结果记录,发送至所述结果回显单元213。对于获取全部日志请求,将所有压缩和未压缩的日志文件打包压缩,再将压缩后的文件发往所述结果回显单元213供用户下载。在WEB端实现命令输入、执行结果回显的基本功能,能够回显非交互方式产生的输出。
本发明第五优选实施例:
请参阅图2及图3,在本发明第三优选实施例的基础上,所述进程打印信息监听模块30还包括用户态子模块32。
所述用户态子模块32,与所述信息监听单元312连接,用于定期扫描所述日志文件,当检测到没有压缩的所述日志文件时,压缩并存储所述日志文件。
在本发明实施例中,所述用户态子模块32主要功能是实现日志文件压缩和压缩文件循环存储,所述用户态子模块32定期地扫描Log文件目录,若发现所述信息监听单元312刚刚关闭没有压缩的日志文件,则压缩所述日志文件后存储,若发现压缩后的日志文件大小之和超出阈值,则删除最早的压缩文件。
所述内核态子模块31还包括信息存储单元314。
所述信息存储单元314,与所述信息监听单元312连接,用于当检测到当前系统状态为panic状态时,将所述日志文件中的所有数据写入Flash设备中。
在本发明实施例中,系统执行过程中遇到不可恢复的错误时会进入panic状态,传统的做法是系统会将堆栈、寄存器等现场信息通过物理串口控制台输出,然后通过自动重启恢复,在本发明中,在检测到当前状态为panic状态时,具体地,系统Panic时输出的信息会输入到内核tty子系统驱动中,这些信息可以被所述信息监听单元312截取到,在确定当前处于panic之后,所述信息存储单元314使用Flash设备驱动注册的erase和write方法,将所述日志文件中的所有数据写入Flash设备中,避免了对内核机制的过多依赖,在非常紧急的panic时仍能工作。
请参阅图4,本发明第二实施例提供了一种基于WEB接口的信息收集方法,包括以下步骤:
S11,通过WEB模块接收用户的输入操作,并根据所述输入操作生成命令内容。
S12,将所述命令内容传输给运行模块;其中,所述命令内容用于触发所述运行模块执行所述命令内容,以生成发送至串口控制台的执行结果。
S13,截获发送至串口控制台的所述执行结果,并保存所述执行结果。
S14,当检测到所述WEB模块发起数据请求时,向所述WEB模块返回所述执行结果。
优选地,所述命令内容的类型包括串口命令以及内核函数调用命令。
当所述命令内容为串口命令时,所述命令内容用于触发串口命令运行子模块运行执行所述命令内容,以生成发送至串口控制台的执行结果。
当所述命令内容为内核函数调用命令时,所述命令内容用于触发内核调试子模块运行执行所述命令内容,生成所述执行结果并通过printf函数输出。
优选地,所述S14具体为:
当检测到所述WEB模块发起数据请求时,根据所述日志文件向所述WEB模块返回所述执行结果。
优选地,所述基于WEB接口的信息收集方法还包括:
定期扫描所述日志文件,当检测到没有压缩的所述日志文件时,压缩并存储所述日志文件。
优选地,所述基于WEB接口的信息收集方法还包括:
检测到当前系统状态为panic状态时,将所述日志文件中的所有数据写入Flash设备中。
参见图5,是本发明第三实施例提供的基于WEB接口的信息收集设备的示意图。如图5所示,该基于WEB接口的信息收集设备包括:至少一个处理器11,例如CPU,至少一个网络接口14或者其他用户接口13,存储器15,至少一个通信总线12,通信总线12用于实现这些组件之间的连接通信。其中,用户接口13可选的可以包括USB接口以及其他标准接口、有线接口。网络接口14可选的可以包括Wi-Fi接口以及其他无线接口。存储器15可能包含高速RAM存储器,也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器15可选的可以包含至少一个位于远离前述处理器11的存储装置。
在一些实施方式中,存储器15存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统151,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
程序152。
具体地,处理器11用于调用存储器15中存储的程序152,执行上述实施例所述的基于WEB接口的信息收集方法,例如图4所示的步骤S11。或者,所述处理器执行所述计算机程序时实现上述各系统实施例中各模块/单元的功能,例如WEB模块。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器15中,并由所述处理器11执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述基于WEB接口的信息收集设备中的执行过程。
所述基于WEB接口的信息收集设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述基于WEB接口的信息收集设备可包括,但不仅限于,处理器11、存储器15。本领域技术人员可以理解,所述示意图仅仅是基于WEB接口的信息收集设备的示例,并不构成对基于WEB接口的信息收集设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于WEB接口的信息收集设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器11可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器11是所述基于WEB接口的信息收集设备的控制中心,利用各种接口和线路连接整个基于WEB接口的信息收集设备的各个部分。
所述存储器15可用于存储所述计算机程序和/或模块,所述处理器11通过运行或执行存储在所述存储器15内的计算机程序和/或模块,以及调用存储在存储器15内的数据,实现所述基于WEB接口的信息收集设备的各种功能。所述存储器15可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述基于WEB接口的信息收集设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (11)

1.一种基于WEB接口的信息收集系统,其特征在于,包括WEB模块、进程打印信息监听模块以及运行模块;其中,
所述WEB模块,与所述进程打印信息监听模块连接,用于接收用户的输入操作,并根据所述输入操作生成命令内容,以将所述命令内容传输给所述进程打印信息监听模块;
所述进程打印信息监听模块,与所述运行模块连接,用于接收所述命令内容,并将所述命令内容传输给所述运行模块;
所述运行模块,用于接收并执行所述命令内容,以生成发送至串口控制台的执行结果;
所述进程打印信息监听模块,还用于截获发送至串口控制台的所述执行结果,并保存所述执行结果;
所述WEB模块,还用于发起数据请求,以向所述进程打印信息监听模块获取所述执行结果。
2.根据权利要求1所述的基于WEB接口的信息收集系统,其特征在于,
所述WEB模块包括WEB前端子模块以及WEB后台子模块;
所述进程打印信息监听模块包括内核态子模块;
所述WEB前端子模块包括按键响应单元以及命令提交单元;
所述WEB后台子模块包括第一命令输入单元;
所述内核态子模块包括第二命令输入单元;
所述按键响应单元,与所述命令提交单元连接,用于接收用户的输入操作,将所述输入操作传输给所述命令提交单元;
所述命令提交单元,与所述第一命令输入单元连接,用于接收所述输入操作,根据所述输入操作生成命令内容,将所述命令内容保存至命令队列,并将所述命令内容发送给所述第一命令输入单元;
所述第一命令输入单元,与所述第二命令输入单元连接,用于接收所述命令内容,并将所述命令内容写入所述第二命令输入单元;
所述第二命令输入单元,与所述运行模块连接,用于获取所述命令内容,将所述命令内容传输给所述运行模块。
3.根据权利要求2所述的基于WEB接口的信息收集系统,其特征在于,所述运行模块包括解析子模块、串口命令运行子模块以及内核调试子模块;
所述命令内容的类型包括串口命令以及内核函数调用命令;
所述第二命令输入单元,与所述解析子模块连接,具体用于获取所述命令内容,将所述命令内容传输给所述解析子模块;
所述解析子模块,与所述串口命令运行子模块连接,用于当判断所述命令内容为串口命令时,将所述命令内容传输给所述串口命令运行子模块;
所述解析子模块,与所述内核调试子模块连接,还用于当判断所述命令内容为内核函数调用命令时,将所述命令内容传输给所述内核调试子模块;
所述串口命令运行子模块,用于接收并执行所述命令内容,以生成发送至串口控制台的执行结果;
所述内核调试子模块,用于接收并执行所述命令内容,以生成发送至串口控制台的执行结果。
4.根据权利要求3所述的基于WEB接口的信息收集系统,其特征在于,所述内核调试子模块包括用户态调试单元以及内核态调试单元;
所述用户态调试单元包括命令解析子单元,数据包发送子单元以及执行结果回显子单元;
所述内核态调试单元包括内核符号定位子单元、命令执行子单元以及执行结果回送子单元;
所述解析子模块,与所述命令解析子单元连接,具体用于当判断所述命令内容为内核函数调用命令时,将所述命令内容传输给所述命令解析子单元;
所述命令解析子单元,与所述数据包发送子单元连接,用于接收所述解析子模块传输的所述命令内容,对所述命令内容进行合法性检查以及语法语义解析,以将所述命令内容转换为含有语法语义信息的语法树,并将所述语法树传输给所述数据包发送子单元;
所述数据包发送子单元,与所述命令执行子单元连接,用于接收所述语法树,并将所述语法树构造成数据包,将所述数据包写入所述命令执行子单元中;
所述命令执行子单元,与所述内核符号定位子单元连接,用于根据所述数据包确定内核符号名(内核函数名),以将所述内核符号名(内核函数名)传输给所述内核符号定位子单元;
所述内核符号定位子单元,用于接收所述内核符号名(内核函数名),根据所述内核符号名(内核函数名)查找内核符号表,以定位所述内核符号名(内核函数名)对应的内核符号地址,向所述命令执行子单元返回所述内核符号地址;
所述命令执行子单元,与所述执行结果回送子单元连接,还用于接收所述内核符号地址,并根据所述内核符号地址执行相应的内核函数,以获取发送至所述执行结果回送子单元的所述执行结果;
所述执行结果回送子单元,与所述执行结果回显子单元连接,用于接收并存储所述执行结果,同时将所述执行结果返回给所述执行结果回显子单元;
所述执行结果回显子单元,用于当所述执行结果回送子单元返回所述执行结果时,读取所述执行结果,以通过printf函数输出。
5.根据权利要求4所述的基于WEB接口的信息收集系统,其特征在于,
所述内核态子模块还包括信息监听单元;
所述信息监听单元,与所述执行结果回显子单元连接,用于截获所述执行结果回显子单元以printf函数输出的所述执行结果,并将所述执行结果保存至日志文件中;
所述信息监听单元,与所述串口命令运行子模块连接,还用于截获所述串口命令运行子模块发送至串口控制台的所述执行结果,并将所述执行结果保存至日志文件中。
6.根据权利要求5所述的基于WEB接口的信息收集系统,其特征在于,
所述WEB前端子模块还包括结果回显单元;
所述WEB后台子模块还包括执行结果获取单元;
所述结果回显单元,与所述执行结果获取单元接,用于向所述执行结果获取单元发起数据请求;
所述执行结果获取单元,与所述信息监听单元连接,用于根据所述数据请求读取所述日志文件,以获取所述执行结果,并将所述执行结果发送给所述结果回显单元。
7.根据权利要求5所述的基于WEB接口的信息收集系统,其特征在于,所述内核态子模块还包括挂钩子单元;
所述挂钩子单元,用于通过修改内核串口驱动,挂接所述信息监听单元所对应的钩子函数,或者解挂所述信息监听单元所对应的钩子函数。
8.根据权利要求5所述的基于WEB接口的信息收集系统,其特征在于,
所述进程打印信息监听模块还包括用户态子模块;
所述用户态子模块,与所述信息监听单元连接,用于定期扫描所述日志文件,当检测到没有压缩的所述日志文件时,压缩并存储所述日志文件;
所述内核态子模块还包括信息存储单元;
所述信息存储单元,与所述信息监听单元连接,用于当检测到当前系统状态为panic状态时,将所述日志文件中的所有数据写入Flash设备中。
9.一种基于WEB接口的信息收集方法,其特征在于,包括以下步骤:
通过WEB模块接收用户的输入操作,并根据所述输入操作生成命令内容;
将所述命令内容传输给运行模块;其中,所述命令内容用于触发所述运行模块执行所述命令内容,以生成发送至串口控制台的执行结果;
截获发送至串口控制台的所述执行结果,并保存所述执行结果;
当检测到所述WEB模块发起数据请求时,向所述WEB模块返回所述执行结果。
10.一种基于WEB接口的信息收集设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求9所述的基于WEB接口的信息收集方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求9所述的基于WEB接口的信息收集方法。
CN201811171717.7A 2018-10-09 2018-10-09 基于web接口的信息收集系统、方法、设备及存储介质 Expired - Fee Related CN109460310B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811171717.7A CN109460310B (zh) 2018-10-09 2018-10-09 基于web接口的信息收集系统、方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811171717.7A CN109460310B (zh) 2018-10-09 2018-10-09 基于web接口的信息收集系统、方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN109460310A true CN109460310A (zh) 2019-03-12
CN109460310B CN109460310B (zh) 2022-03-08

Family

ID=65607348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811171717.7A Expired - Fee Related CN109460310B (zh) 2018-10-09 2018-10-09 基于web接口的信息收集系统、方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN109460310B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175139A (zh) * 2019-05-08 2019-08-27 厦门亿联网络技术股份有限公司 一种usb设备的通用调试方法及usb设备
CN111045977A (zh) * 2019-12-18 2020-04-21 深圳先进技术研究院 Linux系统控制台的USB串口实现方法及相关产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289368A (zh) * 2011-06-17 2011-12-21 中兴通讯股份有限公司 一种获取串口打印信息的方法及系统
CN103544096A (zh) * 2013-10-21 2014-01-29 Tcl集团股份有限公司 Android终端运行异常时的信息反馈方法及系统
US20160196232A1 (en) * 2013-07-29 2016-07-07 Zte Corporation Commissioning Method, Master Control Board, and Service Board

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289368A (zh) * 2011-06-17 2011-12-21 中兴通讯股份有限公司 一种获取串口打印信息的方法及系统
US20160196232A1 (en) * 2013-07-29 2016-07-07 Zte Corporation Commissioning Method, Master Control Board, and Service Board
CN103544096A (zh) * 2013-10-21 2014-01-29 Tcl集团股份有限公司 Android终端运行异常时的信息反馈方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
天若2013: ""web串口调试助手,浏览器控制串口设备"", 《HTTPS://BLOG.CSDN.NET/LDEVS/ARTICLE/DETAILS/39664697》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175139A (zh) * 2019-05-08 2019-08-27 厦门亿联网络技术股份有限公司 一种usb设备的通用调试方法及usb设备
CN110175139B (zh) * 2019-05-08 2021-01-05 厦门亿联网络技术股份有限公司 一种usb设备的通用调试方法及usb设备
US11573871B2 (en) * 2019-05-08 2023-02-07 Yealink (Xiamen) Network Technology Co., Ltd. Debugging method for USB device and USB device
CN111045977A (zh) * 2019-12-18 2020-04-21 深圳先进技术研究院 Linux系统控制台的USB串口实现方法及相关产品
CN111045977B (zh) * 2019-12-18 2021-07-27 深圳先进技术研究院 Linux系统控制台的USB串口实现方法及相关产品

Also Published As

Publication number Publication date
CN109460310B (zh) 2022-03-08

Similar Documents

Publication Publication Date Title
US8843895B2 (en) Debugger connection
CN107783899B (zh) 应用程序中h5页面的测试方法、装置和计算机设备
WO2020173377A1 (zh) 一种日志信息生成方法、装置及电子设备
US7610176B2 (en) Technique for collecting information about computing devices
US9367415B1 (en) System for testing markup language applications on a device
CN109873735B (zh) H5页面的性能测试方法、装置和计算机设备
CN107741902B (zh) 程序应用检测方法及程序应用检测装置
CN110765464A (zh) 漏洞检测方法、装置、设备及计算机存储介质
CN109460310B (zh) 基于web接口的信息收集系统、方法、设备及存储介质
EP3797356B1 (en) Code base sharing between standalone and web-based versions of an application due to the implementing of an emulated network communication channel
CN111309606A (zh) 页面异常处理方法、装置、计算机设备及存储介质
CN111046393B (zh) 漏洞信息上传方法、装置、终端设备及存储介质
CN106843875B (zh) 跨平台移植Python程序的方法和装置
CN112307386A (zh) 信息监控方法、系统、电子设备及计算机可读存储介质
CN116361106A (zh) 一种日志处理方法、装置、电子设备及存储介质
CN111935237B (zh) 日志处理方法及系统、电子设备及存储介质
CN112783724B (zh) 一种日志抓取调试方法、系统、智能设备及存储介质
CN112416698B (zh) 监控系统的扩展方法及装置、存储介质及电子设备
JPWO2020065778A1 (ja) 情報処理装置、制御方法、及びプログラム
CN113330427B (zh) 快应用安装包调试方法、装置、电子设备以及存储介质
WO2024066622A1 (zh) 云系统的测试方法及装置
CN113821424A (zh) 应用软件的操作录制、回放方法、装置及电子设备
CN112365889A (zh) 语音功能集成方法及装置
CN116800600A (zh) 全场景的mock处理方法、装置、电子设备及存储介质
CN115086206A (zh) 一种客户端软件调试方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220308