本发明涉及计算机,尤其涉及一种软件包的检测方法和装置。
背景技术:
1、随着云计算的发展,越来越多的企业将应用程序部署到云环境上,海量的云主机中往往存在着大量的软件包,如何对其进行有效的检测和监控成为了一个重要的问题。目前现有技术主要由系统总体调度各个云主机进行软件包进行检测,保障云环境的稳定和安全。
2、在实现本发明过程中,发明人发现现有技术中存在如下问题:
3、在海量云主机的场景中,现有的应用程序软件包的检测方法由于云主机的数量庞大,系统总体调度能力受限,导致软件包的检测效率较低,不能很好的满足使用。
技术实现思路
1、有鉴于此,本发明实施例提供一种软件包的检测方法和装置,实现了适用于海量云主机场景下的高效的软件包检测,通过各个主机每隔一段时间主动发送的检测任务获取请求,不仅缓解了系统调度压力,提升了软件包的检测效率,而且也避免了交互冲突,提升了交互安全性。
2、为实现所述目的,根据本发明实施例的一个方面,提供了一种软件包的检测方法,包括:
3、响应于接收到可执行软件包检测请求,获取多个主机对应的可执行软件包检测任务;
4、对于每个所述主机,响应于接收到所述主机发送的检测任务获取请求,将所述主机对应的可执行软件包检测任务发送至所述主机,以触发所述主机基于所述可执行软件包检测任务执行可执行软件包检测并得到检测结果;其中,所述检测任务获取请求由所述主机每隔一段时间发送;
5、在接收到各个所述主机返回的检测结果的情况下,对各个所述主机返回的检测结果进行合并处理,生成所述可执行软件包检测请求的响应结果,并返回所述响应结果。
6、可选地,在获取多个主机对应的可执行软件包检测任务之后,所述方法还包括:从所述可执行软件包检测请求中获取各个所述主机的主机标识,将各个所述主机对应的可执行软件包检测任务按照对应的主机标识存入缓存;响应于接收到所述主机发送的检测任务获取请求,将所述主机对应的可执行软件包检测任务发送至所述主机,包括:解析所述主机发送的检测任务获取请求,得到所述主机的主机标识;从所述缓存中查找与所述主机标识匹配的索引键,将所述索引键对应的可执行软件包检测任务发送至所述主机;所述可执行软件包检测任务包括检测条件和检测项目。
7、可选地,基于所述可执行软件包检测任务执行可执行软件包检测并得到检测结果,包括:调取进程列表,所述进程列表中的进程为所述主机中正在运行的进程;从所述进程列表中查找所述可执行软件包的进程,获取所述可执行软件包的进程所对应的路径信息;根据所述路径信息获取所述可执行软件包,对所述可执行软件包进行解压缩处理,获取解压缩后的文件信息;根据所述可执行软件包检测任务中的检测项目,从所述文件信息中获取目标信息,将所述目标信息作为所述可执行软件包检测的检测结果。
8、可选地,从所述进程列表中查找所述可执行软件包的进程,包括:从所述进程列表中查找与所述可执行软件包的后缀名称相同的备选进程;将所述备选进程中与所述可执行软件包具有相同名称的进程作为所述可执行软件包的进程。
9、可选地,所述检测结果具有时间属性和主机标识;在接收到部分所述主机返回的检测结果的情况下,所述方法还包括:将接收到的检测结果中的主机标识和从所述可执行软件包检测请求中获取到的各个所述主机的主机标识进行匹配,根据匹配的结果,确定未返回检测结果的异常主机;获取所述异常主机的历史检测结果,从所述历史检测结果中选取时间最近的历史检测结果作为本次可执行软件包检测任务的检测结果。
10、可选地,在对各个所述主机返回的检测结果进行合并处理之前,所述方法还包括:将各个所述主机返回的检测结果传入消息队列;通过所述消息队列,将所述检测结果存入数据库;对各个所述主机返回的检测结果进行合并处理,包括:将从所述数据库中获取到的各个所述主机返回的检测结果进行统计和合并封装处理。
11、可选地,所述方法还包括:响应于接收到可执行软件包检测结果分析请求,获取所述可执行软件包的风险信息;将所述可执行软件包检测结果中的信息和所述风险信息进行匹配;根据匹配的结果,得到所述可执行软件包检测结果的分析结果,返回所述分析结果。
12、根据本发明实施例的第二方面,提供一种软件包的检测装置,包括:
13、任务获取模块,用于响应于接收到可执行软件包检测请求,获取多个主机对应的可执行软件包检测任务;
14、检测触发模块,用于对于每个所述主机,响应于接收到所述主机发送的检测任务获取请求,将所述主机对应的可执行软件包检测任务发送至所述主机,以触发所述主机基于所述可执行软件包检测任务执行可执行软件包检测并得到检测结果;其中,所述检测任务获取请求由所述主机每隔一段时间发送;
15、结果获取模块,用于在接收到各个所述主机返回的检测结果的情况下,对各个所述主机返回的检测结果进行合并处理,生成所述可执行软件包检测请求的响应结果,并返回所述响应结果。
16、根据本发明实施例的第三方面,提供一种软件包的电子检测设备,包括:
17、一个或多个处理器;
18、存储装置,用于存储一个或多个程序,
19、当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面提供的方法。
20、根据本发明实施例的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例第一方面提供的方法。
21、所述发明中的一个实施例具有如下优点或有益效果:通过响应于接收到可执行软件包检测请求,获取多个主机对应的可执行软件包检测任务;对于每个主机,响应于接收到主机发送的检测任务获取请求,将主机对应的可执行软件包检测任务发送至主机,以触发主机基于可执行软件包检测任务执行可执行软件包检测并得到检测结果;其中,检测任务获取请求由主机每隔一段时间发送;在接收到各个主机返回的检测结果的情况下,对各个主机返回的检测结果进行合并处理,生成可执行软件包检测请求的响应结果,并返回响应结果的技术方案,实现了一种适用于海量云主机场景下的高效的软件包的检测方法,通过各个主机每隔一段时间主动发送的检测任务获取请求,不仅缓解了系统调度压力,提升了软件包的检测效率,而且也避免了交互冲突,提升了交互安全性。
1.一种软件包的检测方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在获取多个主机对应的可执行软件包检测任务之后,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,基于所述可执行软件包检测任务执行可执行软件包检测并得到检测结果,包括:
4.根据权利要求3所述的方法,其特征在于,从所述进程列表中查找所述可执行软件包的进程,包括:
5.根据权利要求2所述的方法,其特征在于,所述检测结果具有时间属性和主机标识;
6.根据权利要求1所述的方法,其特征在于,在对各个所述主机返回的检测结果进行合并处理之前,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种软件包的检测装置,其特征在于,包括:
9.一种移动电子设备终端,其特征在于,包括:
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。