CN108062327B - 客户端的匹配方法和装置 - Google Patents
客户端的匹配方法和装置 Download PDFInfo
- Publication number
- CN108062327B CN108062327B CN201610982673.0A CN201610982673A CN108062327B CN 108062327 B CN108062327 B CN 108062327B CN 201610982673 A CN201610982673 A CN 201610982673A CN 108062327 B CN108062327 B CN 108062327B
- Authority
- CN
- China
- Prior art keywords
- static data
- data information
- field
- matching
- client
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种客户端的匹配方法和装置。其中,该方法包括:获取第一静态数据信息;判断第一静态数据信息是否满足预设条件;如果第一静态数据信息满足预设条件,则获取多个客户端中的第一客户端的静态数据信息;将第一客户端的静态数据信息与第一静态数据信息进行匹配;如果第一客户端的静态数据信息与第一静态数据信息匹配成功,则停止匹配过程,输出匹配结果。本发明解决了现有技术中客户端的匹配方法需要对所有客户端的静态数据信息进行匹配,对于字段值唯一的静态数据字段,匹配效率低的技术问题。
Description
技术领域
本发明涉及互联网领域,具体而言,涉及一种客户端的匹配方法和装置。
背景技术
Salt(管理平台)的grains(静态数据)模块可以搜集指定的服务器信息,也可以应用于salt的服务器端master进行minion(客户端)匹配时候的匹配条件,比如搜索全网minion中,静态数据grains信息里hostname字段(主机名字段)叫xxx的机器,master就会向全网minion发送抓取grains的请求,再根据收集到的grains信息来匹配hostname字段为xxx的minion。操作人员得到这些minion后可以方便的进行其他操作。
该方法虽然抓取的数据全面,没有遗漏,但是对于某些全网字段值是唯一的grains字段来说,搜索的效率会非常低,因为salt在分析每一个minion的grains信息时,即使是已经匹配到了对应的字段,但仍然会将全网所有minion查一遍后,才将结果反馈出来。例如我们都知道IP是服务器的一个属性,其值必须唯一否则会造成冲突。那么需求如果是:对grains信息里IP是x.x.x.x的机器进行一些操作的时候,salt会去向全网的Minion征收grains信息,一边接收一边分析每台Minion的ip是否是x.x.x.x,即便匹配到了,也只会把结果存在内存中,等待全部分析结束后再返回匹配结果,造成时间和资源的浪费,导致搜索效率低。
针对现有技术中客户端的匹配方法需要对所有客户端的静态数据信息进行匹配,对于字段值唯一的静态数据字段,匹配效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种客户端的匹配方法和装置,以至少解决现有技术中客户端的匹配方法需要对所有客户端的静态数据信息进行匹配,对于字段值唯一的静态数据字段,匹配效率低的技术问题。
根据本发明实施例的一个方面,提供了一种客户端的匹配方法,包括:获取第一静态数据信息;判断第一静态数据信息是否满足预设条件;如果第一静态数据信息满足预设条件,则获取多个客户端中的第一客户端的静态数据信息;将第一客户端的静态数据信息与第一静态数据信息进行匹配;如果第一客户端的静态数据信息与第一静态数据信息匹配成功,则停止匹配过程,输出匹配结果。
进一步地,第一静态数据信息包括:第一静态数据字段,以及第一静态数据字段的字段值,其中,判断第一静态数据信息是否满足预设条件包括:获取第二静态数据字段列表,其中,第二静态数据字段列表包括:至少一个第二静态数据字段;多个客户端中的每个客户端的第二静态数据字段的字段值唯一;判断第二静态数据字段列表中是否存在与第一静态数据字段相同的第二静态数据字段;如果第二静态数据字段列表中存在与第一静态数据字段相同的第二静态数据字段,则确定第一静态数据信息满足预设条件。
进一步地,在获取第二静态数据字段列表之前,上述方法还包括:在匹配代码中,添加第二静态数据字段列表。
进一步地,静态数据信息包括:至少一个静态数据字段以及每个静态数据字段的字段值,其中,将第一客户端的静态数据信息与第一静态数据信息进行匹配包括:将每个静态数据字段的字段名与第一静态数据字段的字段名进行匹配;如果任意一个静态数据字段的字段名与第一静态数据字段的字段名匹配成功,则将任意一个静态数据字段的字段值与第一静态数据字段的字段值进行匹配;如果任意一个静态数据字段的字段值与第一静态数据字段的字段值匹配成功,则确定第一客户端的静态数据信息与第一静态数据信息匹配成功。
进一步地,停止匹配过程,并得到匹配结果包括:停止获取多个客户端中除第一客户端之外的其他客户端的静态数据信息;得到匹配结果为第一客户端的标识信息。
进一步地,上述方法还包括:如果第一客户端的静态数据信息与第一静态数据信息匹配失败,则获取多个客户端中的第二客户端的静态数据信息,并将第二客户端的静态数据信息与第一静态数据信息进行匹配。
进一步地,上述方法还包括:如果第一静态数据信息不满足预设条件,则获取多个客户端的静态数据信息,并将每个客户端的静态数据信息与第一静态数据信息进行匹配,在每个客户端的静态数据信息与第一静态数据信息匹配结束后,输出匹配结果。
根据本发明实施例的另一方面,还提供了一种客户端的匹配装置,包括:第一获取模块,用于获取第一静态数据信息;判断模块,用于判断第一静态数据信息是否满足预设条件;第二获取模块,用于如果第一静态数据信息满足预设条件,则获取多个客户端中的第一客户端的静态数据信息;匹配模块,用于将第一客户端的静态数据信息与第一静态数据信息进行匹配;停止模块,用于如果第一客户端的静态数据信息与第一静态数据信息匹配成功,则停止匹配过程,输出匹配结果。
进一步地,第一静态数据信息包括:第一静态数据字段,以及第一静态数据字段的字段值,其中,判断模块包括:获取子模块,用于获取第二静态数据字段列表,其中,第二静态数据字段列表包括:至少一个第二静态数据字段;多个客户端中的每个客户端的第二静态数据字段的字段值唯一;判断子模块,用于判断第二静态数据字段列表中是否存在与第一静态数据字段相同的第二静态数据字段;第一确定子模块,用于如果第二静态数据字段列表中存在与第一静态数据字段相同的第二静态数据字段,则确定第一静态数据信息满足预设条件。
进一步地,上述装置还包括:添加模块,用于在匹配代码中,添加第二静态数据字段列表。
进一步地,静态数据信息包括:至少一个预静态数据字段以及每个静态数据字段的字段值,其中,将匹配模块包括:第一匹配子模块,用于将每个静态数据字段的字段名与第一静态数据字段的字段名进行匹配;第二匹配子模块,用于如果任意一个静态数据字段的字段名与第一静态数据字段的字段名匹配成功,则将任意一个静态数据字段的字段值与第一静态数据字段的字段值进行匹配;第二确定子模块,用于如果任意一个静态数据字段的字段值与第一静态数据字段的字段值匹配成功,则确定第一客户端的静态数据信息与第一静态数据信息匹配成功。
进一步地,停止模块包括:停止子模块,用于停止获取多个客户端中除第一客户端之外的其他客户端的静态数据信息;处理子模块,用于得到匹配结果为第一客户端的标识信息。
进一步地,第二获取模块还用于如果第一客户端的静态数据信息与第一静态数据信息匹配失败,则获取多个客户端中的第二客户端的静态数据信息;匹配模块还用于将第二客户端的静态数据信息与第一静态数据信息进行匹配。
进一步地,第二获取模块还用于如果第一静态数据信息不满足预设条件,则获取多个客户端的静态数据信息;匹配模块还用于将每个客户端的静态数据信息与第一静态数据信息进行匹配,得到匹配结果;装置还包括:输出模块,用于在每个客户端的静态数据信息与第一静态数据信息匹配结束后,输出匹配结果。
在本发明实施例中,获取第一静态数据信息,判断第一静态数据信息是否满足预设条件,如果第一静态数据信息满足预设条件,则获取多个客户端中的第一客户端的静态数据信息,将第一客户端的静态数据信息与第一静态数据信息进行匹配,如果第一客户端的静态数据信息与第一静态数据信息匹配成功,则停止匹配过程,输出匹配结果,从而针对字段值唯一的静态数据字段,可以在匹配到相应的客户端之后,马上停止对其他客户端的匹配过程,并返回匹配结果,不再需要对其他客户端进行分析,防止造成时间和资源的浪费,解决了现有技术中客户端的匹配方法需要对所有客户端的静态数据信息进行匹配,对于字段值唯一的静态数据字段,匹配效率低的技术问题,达到提升客户端匹配时的效率,节省大量计算资源的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种客户端的匹配方法的流程图;以及
图2是根据本发明实施例的一种客户端的匹配装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
salt:是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块构建。通过部署salt环境,可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,是运维人员提高工作效率、规范业务配置与操作的利器。
minion:salt采用C/S模式,minion是salt中的客户端(client),服务器端(server)是master,minion与master之间通过ZeroMQ消息队列通信。
grains:是客户端minion第一次启动的时候采集的静态数据,可以在master端编写grains模块,并同步到minion中,minion中的grains模块负责采集客户端的静态数据,并将采集到的静态数据发送给服务器端master。
实施例1
根据本发明实施例,提供了一种客户端的匹配方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种客户端的匹配方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取第一静态数据信息。
具体的,上述的第一静态数据信息可以是用户输入的需要进行客户端匹配的grains信息,例如,可以是用户输入的主机名,或者用户输入的IP地址。
步骤S104,判断第一静态数据信息是否满足预设条件。
具体的,上述预设条件可以是全网唯一值的静态数据信息,即字段值唯一的grains信息,例如,可以是IP地址、ID号等取值必须唯一的信息。
步骤S106,如果第一静态数据信息满足预设条件,则获取多个客户端中的第一客户端的静态数据信息。
具体的,上述第一客户端可以是salt中的多个minion中的任意一个minion。
步骤S108,将第一客户端的静态数据信息与第一静态数据信息进行匹配。
步骤S110,如果第一客户端的静态数据信息与第一静态数据信息匹配成功,则停止匹配过程,输出匹配结果。
在一种可选的方案中,当salt的master端需要进行minion匹配时,用户可以输入需要匹配的grains信息,通过minion代码进行匹配,在匹配过程开始前,可以增加确认逻辑,判断用户输入的grains信息是否为全网唯一值的grains信息,如果确认用户输入的grains信息是全网唯一值的grains信息,则可以通过每台minion中的grains模块采集每台minion的grains信息,并返回至master,master在获取到多个minion中任意一个minion的grains信息之后,可以将获取到的grains信息与用户输入的grains信息进行匹配,如果匹配成功,则可以运行break动作停止检索逻辑,停止匹配过程,并将匹配结果输出给用户,完成整个匹配过程。
通过本发明上述实施例,获取第一静态数据信息,判断第一静态数据信息是否满足预设条件,如果第一静态数据信息满足预设条件,则获取多个客户端中的第一客户端的静态数据信息,将第一客户端的静态数据信息与第一静态数据信息进行匹配,如果第一客户端的静态数据信息与第一静态数据信息匹配成功,则停止匹配过程,输出匹配结果,从而针对字段值唯一的静态数据字段,可以在匹配到相应的客户端之后,马上停止对其他客户端的匹配过程,并返回匹配结果,不再需要对其他客户端进行分析,防止造成时间和资源的浪费,解决了现有技术中客户端的匹配方法需要对所有客户端的静态数据信息进行匹配,对于字段值唯一的静态数据字段,匹配效率低的技术问题,达到提升客户端匹配时的效率,节省大量计算资源的效果。
可选的,在本发明上述实施例中,如果第一客户端的静态数据信息与第一静态数据信息匹配失败,则获取多个客户端中的第二客户端的静态数据信息,并将第二客户端的静态数据信息与第一静态数据信息进行匹配。
具体的,上述的第二客户端可以是salt中的多个minion中的除了匹配失败的minion之外的任意一个minion。
在一种可选的方案中,在将获取到的grains信息与用户输入的grains信息进行匹配之后,如果匹配失败,则需要继续对其他minion进行分析,可以获取其他minion中任意一个minion的grains信息,并将获取到的grains信息与用户输入的grains信息进行匹配,如果匹配成功,则可以运行break动作停止检索逻辑,停止匹配过程,并将匹配结果输出给用户,完成整个匹配过程;如果匹配失败,则重复上述过程,直到匹配成功,运行break动作停止检索逻辑,停止匹配过程,并将匹配结果输出给用户,完成整个匹配过程。
可选的,在本发明上述实施例中,如果第一静态数据信息不满足预设条件,则获取多个客户端的静态数据信息,并将每个客户端的静态数据信息与第一静态数据信息进行匹配,在每个客户端的静态数据信息与第一静态数据信息匹配结束后,输出匹配结果。
在一种可选的方案中,在用户输入需要匹配的grains信息之后,在匹配过程开始前,可以增加确认逻辑,判断用户输入的grains信息是否为全网唯一值的grains信息,如果确认用户输入的grains信息不是全网唯一值的grains信息,则可以按照原来的逻辑进行匹配,通过每台minion中的grains模块采集每台minion的grains信息,并返回至master,master在获取到每台minion的grains信息之后,可以对获取到的每台minion的grains信息进行匹配,将匹配结果保存在内存中,等待全部分析结束后,并将匹配结果输出给用户,完成整个匹配过程。
可选的,在本发明上述实施例中,上述的第一静态数据信息可以包括:第一静态数据字段,以及第一静态数据字段的字段值,其中,步骤S104,判断第一静态数据信息是否满足预设条件包括:
步骤S1042,获取第二静态数据字段列表,其中,第二静态数据字段列表包括:至少一个第二静态数据字段,多个客户端中的每个客户端的第二静态数据字段的字段值唯一。
具体的,上述的第二静态数据字段列表可以是用户预先定义好的确定全网唯一的grains key列表,包含有用户预先定义好的几种确定全网唯一的字段名,例如,可以是IP、assetid、saltid等。
步骤S1044,判断第二静态数据字段列表中是否存在与第一静态数据字段相同的第二静态数据字段。
步骤S1046,如果第二静态数据字段列表中存在与第一静态数据字段相同的第二静态数据字段,则确定第一静态数据信息满足预设条件。
在一种可选的方案中,当salt的master端需要进行minion匹配时,用户可以输入grains key的字段名和对应的字段值,得到需要匹配的grains信息,在执行确认逻辑的过程中,可以从minion代码中获取用户预先定义的grains key列表,然后判断用户输入的grains信息中的grains key是否在grains key列表中,即判断grains key列表中是否有与用户输入的grains key字段名相同的字段名,如果在grains key列表中,则确定用户输入的grains信息满足预设条件,一旦客户端匹配成功,马上停止其他客户端的匹配过程,并返回匹配结果;如果不在grains key列表中,则按照原来的逻辑进行匹配,直到全部minion分析完成之后,结束匹配过程,并返回匹配结果。
可选的,在本发明上述实施例中,在步骤S1042,获取第二静态数据字段列表之前,上述方法还包括:
步骤S1040,在匹配代码中,添加第二静态数据字段列表。
具体的,上述的匹配代码可以是salt的官方源码中的匹配minion的代码。
在一种可选的方案中,可以在salt的官方源码的匹配minion的代码中,增加定义一个键列表(即上述的第二静态数据字段列表)。
可选的,在本发明上述实施例中,上述的静态数据信息可以包括:至少一个静态数据字段以及每个静态数据字段的字段值,其中,步骤S108,将第一客户端的静态数据信息与第一静态数据信息进行匹配包括:
步骤S1082,将每个静态数据字段的字段名与第一静态数据字段的字段名进行匹配。
步骤S1084,如果任意一个静态数据字段的字段名与第一静态数据字段的字段名匹配成功,则将任意一个静态数据字段的字段值与第一静态数据字段的字段值进行匹配。
步骤S1086,如果任意一个静态数据字段的字段值与第一静态数据字段的字段值匹配成功,则确定第一客户端的静态数据信息与第一静态数据信息匹配成功。
在一种可选的方案中,在将获取到的grains信息与用户输入的grains信息比较的过程中,可以将获取到的grains信息中的每个grains key的字段名与用户输入的grainskey的字段名进行匹配,即查找获取到的grains信息中是否存在与用户输入的grains key的字段名相同的grains key,如果存在,则进一步将字段名相同的grains key的字段值与用户输入的grains key的字段值进行比较,判断两个字段值是否相同,如果相同,则确定minion的grains信息与用户输入的grains信息匹配成功,确定该minion为用户需要匹配的minion。如果两个字段值不相同,或者获取到的grains信息中不存在与用户输入的grainskey的字段名相同的grains key,则确定minion的grains信息与用户输入的grains信息匹配失败,确定该minion不是用户需要匹配的minion,需要进一步对其他minion进行匹配。
可选的,在本发明上述实施例中,步骤S110,停止匹配过程,并得到匹配结果包括:
步骤S1102,停止获取多个客户端中未进行匹配的其他客户端的静态数据信息。
步骤S1104,得到匹配结果为第一客户端的标识信息。
具体的,上述的标识信息可以是minion的ID值。
在一种可选的方案中,如果获取到的grains信息与用户输入的grains信息匹配成功,则确定该minion为用户需要匹配的minion,可以运行break动作停止检索逻辑,停止获取未进行匹配的其他minion的grains信息,直接返回该minion的ID值给master,完成整个匹配过程。
实施例2
根据本发明实施例,提供了一种客户端的匹配装置的实施例。
图2是根据本发明实施例的一种客户端的匹配装置的示意图,如图2所示,该装置包括:
第一获取模块21,用于获取第一静态数据信息。
具体的,上述的第一静态数据信息可以是用户输入的需要进行客户端匹配的grains信息,例如,可以是用户输入的主机名,或者用户输入的IP地址。
判断模块23,用于判断第一静态数据信息是否满足预设条件。
具体的,上述预设条件可以是全网唯一值的静态数据信息,即字段值唯一的grains信息,例如,可以是IP地址、ID号等取值必须唯一的信息。
第二获取模块25,用于如果第一静态数据信息满足预设条件,则获取多个客户端中的第一客户端的静态数据信息。
具体的,上述第一客户端可以是salt中的多个minion中的任意一个minion。
匹配模块27,用于将第一客户端的静态数据信息与第一静态数据信息进行匹配。
停止模块29,用于如果第一客户端的静态数据信息与第一静态数据信息匹配成功,则停止匹配过程,输出匹配结果。
在一种可选的方案中,当salt的master端需要进行minion匹配时,用户可以输入需要匹配的grains信息,通过minion代码进行匹配,在匹配过程开始前,可以增加确认逻辑,判断用户输入的grains信息是否为全网唯一值的grains信息,如果确认用户输入的grains信息是全网唯一值的grains信息,则可以通过每台minion中的grains模块采集每台minion的grains信息,并返回至master,master在获取到多个minion中任意一个minion的grains信息之后,可以将获取到的grains信息与用户输入的grains信息进行匹配,如果匹配成功,则可以运行break动作停止检索逻辑,停止匹配过程,并将匹配结果输出给用户,完成整个匹配过程。
通过本发明上述实施例,获取第一静态数据信息,判断第一静态数据信息是否满足预设条件,如果第一静态数据信息满足预设条件,则获取多个客户端中的第一客户端的静态数据信息,将第一客户端的静态数据信息与第一静态数据信息进行匹配,如果第一客户端的静态数据信息与第一静态数据信息匹配成功,则停止匹配过程,输出匹配结果,从而针对字段值唯一的静态数据字段,可以在匹配到相应的客户端之后,马上停止对其他客户端的匹配过程,并返回匹配结果,不再需要对其他客户端进行分析,防止造成时间和资源的浪费,解决了现有技术中客户端的匹配方法需要对所有客户端的静态数据信息进行匹配,对于字段值唯一的静态数据字段,匹配效率低的技术问题,达到提升客户端匹配时的效率,节省大量计算资源的效果。
可选的,在本发明上述实施例中,第二获取模块还用于如果第一客户端的静态数据信息与第一静态数据信息匹配失败,则获取多个客户端中的第二客户端的静态数据信息,匹配模块还用于将第二客户端的静态数据信息与第一静态数据信息进行匹配。
具体的,上述的第二客户端可以是salt中的多个minion中的除了匹配失败的minion之外的任意一个minion。
在一种可选的方案中,在将获取到的grains信息与用户输入的grains信息进行匹配之后,如果匹配失败,则需要继续对其他minion进行分析,可以获取其他minion中任意一个minion的grains信息,并将获取到的grains信息与用户输入的grains信息进行匹配,如果匹配成功,则可以运行break动作停止检索逻辑,停止匹配过程,并将匹配结果输出给用户,完成整个匹配过程;如果匹配失败,则重复上述过程,直到匹配成功,运行break动作停止检索逻辑,停止匹配过程,并将匹配结果输出给用户,完成整个匹配过程。
可选的,在本发明上述实施例中,第二获取模块还用于如果第一静态数据信息不满足预设条件,则获取多个客户端的静态数据信息,匹配模块还用于将每个客户端的静态数据信息与第一静态数据信息进行匹配,上述装置还包括:输出模块,用于在每个客户端的静态数据信息与第一静态数据信息匹配结束后,输出匹配结果。
在一种可选的方案中,在用户输入需要匹配的grains信息之后,在匹配过程开始前,可以增加确认逻辑,判断用户输入的grains信息是否为全网唯一值的grains信息,如果确认用户输入的grains信息不是全网唯一值的grains信息,则可以按照原来的逻辑进行匹配,通过每台minion中的grains模块采集每台minion的grains信息,并返回至master,master在获取到每台minion的grains信息之后,可以对获取到的每台minion的grains信息进行匹配,将匹配结果保存在内存中,等待全部分析结束后,并将匹配结果输出给用户,完成整个匹配过程。
可选的,在本发明上述实施例中,上述的第一静态数据信息可以包括:第一静态数据字段,以及第一静态数据字段的字段值,其中,判断模块包括:
获取子模块,用于获取第二静态数据字段列表,其中,第二静态数据字段列表包括:至少一个第二静态数据字段,多个客户端中的每个客户端的第二静态数据字段的字段值唯一。
具体的,上述的第二静态数据字段列表可以是用户预先定义好的确定全网唯一的grains key列表,包含有用户预先定义好的几种确定全网唯一的字段名,例如,可以是IP、assetid、saltid等。
判断子模块,用于判断第二静态数据字段列表中是否存在与第一静态数据字段相同的第二静态数据字段。
第一确定子模块,用于如果第二静态数据字段列表中存在与第一静态数据字段相同的第二静态数据字段,则确定第一静态数据信息满足预设条件。
在一种可选的方案中,当salt的master端需要进行minion匹配时,用户可以输入grains key的字段名和对应的字段值,得到需要匹配的grains信息,在执行确认逻辑的过程中,可以从minion代码中获取用户预先定义的grains key列表,然后判断用户输入的grains信息中的grains key是否在grains key列表中,即判断grains key列表中是否有与用户输入的grains key字段名相同的字段名,如果在grains key列表中,则确定用户输入的grains信息满足预设条件,一旦客户端匹配成功,马上停止其他客户端的匹配过程,并返回匹配结果;如果不在grains key列表中,则按照原来的逻辑进行匹配,直到全部minion分析完成之后,结束匹配过程,并返回匹配结果。
可选的,在本发明上述实施例中,上述装置还包括:
添加模块,用于在匹配代码中,添加第二静态数据字段列表。
具体的,上述的匹配代码可以是salt的官方源码中的匹配minion的代码。
在一种可选的方案中,可以在salt的官方源码的匹配minion的代码中,增加定义一个键列表(即上述的第二静态数据字段列表)。
可选的,在本发明上述实施例中,上述的静态数据信息可以包括:至少一个静态数据字段以及每个静态数据字段的字段值,其中,匹配模块包括:
第一匹配子模块,用于将每个静态数据字段的字段名与第一静态数据字段的字段名进行匹配。
第二匹配子模块,用于如果任意一个静态数据字段的字段名与第一静态数据字段的字段名匹配成功,则将任意一个静态数据字段的字段值与第一静态数据字段的字段值进行匹配。
第二确定子模块,用于如果任意一个静态数据字段的字段值与第一静态数据字段的字段值匹配成功,则确定第一客户端的静态数据信息与第一静态数据信息匹配成功。
在一种可选的方案中,在将获取到的grains信息与用户输入的grains信息比较的过程中,可以将获取到的grains信息中的每个grains key的字段名与用户输入的grainskey的字段名进行匹配,即查找获取到的grains信息中是否存在与用户输入的grains key的字段名相同的grains key,如果存在,则进一步将字段名相同的grains key的字段值与用户输入的grains key的字段值进行比较,判断两个字段值是否相同,如果相同,则确定minion的grains信息与用户输入的grains信息匹配成功,确定该minion为用户需要匹配的minion。如果两个字段值不相同,或者获取到的grains信息中不存在与用户输入的grainskey的字段名相同的grains key,则确定minion的grains信息与用户输入的grains信息匹配失败,确定该minion不是用户需要匹配的minion,需要进一步对其他minion进行匹配。
可选的,在本发明上述实施例中,停止模块包括:
停止子模块,用于停止获取多个客户端中未进行匹配的其他客户端的静态数据信息。
处理子模块,用于得到匹配结果为第一客户端的标识信息。
具体的,上述的标识信息可以是minion的ID值。
在一种可选的方案中,如果获取到的grains信息与用户输入的grains信息匹配成功,则确定该minion为用户需要匹配的minion,可以运行break动作停止检索逻辑,停止获取未进行匹配的其他minion的grains信息,直接返回该minion的ID值给master,完成整个匹配过程。
所述客户端的匹配装置包括处理器和存储器,上述第一获取模块、判断模块、第二获取模块、匹配模块和停止模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元。上述预设条件、第二静态数据字段列表都可以存储在存储器中。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数解析文本内容。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取第一静态数据信息;判断第一静态数据信息是否满足预设条件;如果第一静态数据信息满足预设条件,则获取多个客户端中的第一客户端的静态数据信息;将第一客户端的静态数据信息与第一静态数据信息进行匹配;如果第一客户端的静态数据信息与第一静态数据信息匹配成功,则停止匹配过程,输出匹配结果。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种客户端的匹配方法,其特征在于,包括:
获取第一静态数据信息;
判断所述第一静态数据信息是否满足预设条件;
如果所述第一静态数据信息满足所述预设条件,则获取多个客户端中的第一客户端的静态数据信息;
将所述第一客户端的静态数据信息与所述第一静态数据信息进行匹配;
如果所述第一客户端的静态数据信息与所述第一静态数据信息匹配成功,则停止匹配过程,输出匹配结果;
其中,停止匹配过程,并得到匹配结果包括:
停止获取所述多个客户端中未进行匹配的客户端的静态数据信息;
得到所述匹配结果为所述第一客户端的标识信息。
2.根据权利要求1所述的方法,其特征在于,所述第一静态数据信息包括:第一静态数据字段,以及所述第一静态数据字段的字段值,其中,判断所述第一静态数据信息是否满足预设条件包括:
获取第二静态数据字段列表,其中,所述第二静态数据字段列表包括:至少一个第二静态数据字段;所述多个客户端中的每个客户端的所述第二静态数据字段的字段值唯一;
判断所述第二静态数据字段列表中是否存在与所述第一静态数据字段相同的第二静态数据字段;
如果所述第二静态数据字段列表中存在与所述第一静态数据字段相同的第二静态数据字段,则确定所述第一静态数据信息满足所述预设条件。
3.根据权利要求2所述的方法,其特征在于,在获取第二静态数据字段列表之前,所述方法还包括:
在匹配代码中,添加所述第二静态数据字段列表。
4.根据权利要求2所述的方法,其特征在于,所述静态数据信息包括:至少一个静态数据字段以及每个静态数据字段的字段值,其中,将所述第一客户端的静态数据信息与所述第一静态数据信息进行匹配包括:
将所述每个静态数据字段的字段名与所述第一静态数据字段的字段名进行匹配;
如果任意一个静态数据字段的字段名与所述第一静态数据字段的字段名匹配成功,则将所述任意一个静态数据字段的字段值与所述第一静态数据字段的字段值进行匹配;
如果所述任意一个静态数据字段的字段值与所述第一静态数据字段的字段值匹配成功,则确定所述第一客户端的静态数据信息与所述第一静态数据信息匹配成功。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述方法还包括:如果所述第一客户端的静态数据信息与所述第一静态数据信息匹配失败,则获取所述多个客户端中的第二客户端的静态数据信息,并将所述第二客户端的静态数据信息与所述第一静态数据信息进行匹配。
6.根据权利要求1至4中任意一项所述的方法,其特征在于,所述方法还包括:如果所述第一静态数据信息不满足所述预设条件,则获取所述多个客户端的静态数据信息,并将每个客户端的静态数据信息与所述第一静态数据信息进行匹配,在所述每个客户端的静态数据信息与所述第一静态数据信息匹配结束后,输出所述匹配结果。
7.一种客户端的匹配装置,其特征在于,包括:
第一获取模块,用于获取第一静态数据信息;
判断模块,用于判断所述第一静态数据信息是否满足预设条件;
第二获取模块,用于如果所述第一静态数据信息满足所述预设条件,则获取多个客户端中的第一客户端的静态数据信息;
匹配模块,用于将所述第一客户端的静态数据信息与所述第一静态数据信息进行匹配;
停止模块,用于如果所述第一客户端的静态数据信息与所述第一静态数据信息匹配成功,则停止匹配过程,输出匹配结果;
其中,所述停止模块包括:
停止子模块,用于停止获取所述多个客户端中未进行匹配的客户端的静态数据信;
处理子模块,用于得到所述匹配结果为所述第一客户端的标识信息。
8.根据权利要求7所述的装置,其特征在于,所述第一静态数据信息包括:第一静态数据字段,以及所述第一静态数据字段的字段值,其中,所述判断模块包括:
获取子模块,用于获取第二静态数据字段列表,其中,所述第二静态数据字段列表包括:至少一个第二静态数据字段;所述多个客户端中的每个客户端的所述第二静态数据字段的字段值唯一;
判断子模块,用于判断所述第二静态数据字段列表中是否存在与所述第一静态数据字段相同的第二静态数据字段;
第一确定子模块,用于如果所述第二静态数据字段列表中存在与所述第一静态数据字段相同的第二静态数据字段,则确定所述第一静态数据信息满足所述预设条件。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
添加模块,用于在匹配代码中,添加所述第二静态数据字段列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610982673.0A CN108062327B (zh) | 2016-11-08 | 2016-11-08 | 客户端的匹配方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610982673.0A CN108062327B (zh) | 2016-11-08 | 2016-11-08 | 客户端的匹配方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108062327A CN108062327A (zh) | 2018-05-22 |
CN108062327B true CN108062327B (zh) | 2020-10-13 |
Family
ID=62137921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610982673.0A Active CN108062327B (zh) | 2016-11-08 | 2016-11-08 | 客户端的匹配方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108062327B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102421098A (zh) * | 2010-09-27 | 2012-04-18 | 中国移动通信集团公司 | 一种用户认证方法、装置及系统 |
CN105933351A (zh) * | 2016-07-05 | 2016-09-07 | 成都福兰特电子技术股份有限公司 | 一种物联网设备接入网络的系统与方法 |
CN106022027A (zh) * | 2016-06-28 | 2016-10-12 | 青岛海信移动通信技术股份有限公司 | 一种移动设备的解锁方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9088538B2 (en) * | 2013-03-15 | 2015-07-21 | Saife, Inc. | Secure network storage |
-
2016
- 2016-11-08 CN CN201610982673.0A patent/CN108062327B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102421098A (zh) * | 2010-09-27 | 2012-04-18 | 中国移动通信集团公司 | 一种用户认证方法、装置及系统 |
CN106022027A (zh) * | 2016-06-28 | 2016-10-12 | 青岛海信移动通信技术股份有限公司 | 一种移动设备的解锁方法和装置 |
CN105933351A (zh) * | 2016-07-05 | 2016-09-07 | 成都福兰特电子技术股份有限公司 | 一种物联网设备接入网络的系统与方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108062327A (zh) | 2018-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107665233B (zh) | 数据库数据处理方法、装置、计算机设备和存储介质 | |
CN111752799B (zh) | 一种业务链路跟踪方法、装置、设备及储存介质 | |
CN107220142B (zh) | 执行数据恢复操作的方法及装置 | |
CN105049287A (zh) | 日志处理方法及装置 | |
US10754628B2 (en) | Extracting web API endpoint data from source code to identify potential security threats | |
CN109923847A (zh) | 调用链路的发现方法、装置、设备及存储介质 | |
US10387370B2 (en) | Collecting test results in different formats for storage | |
CN107229628B (zh) | 分布式数据库预处理的方法及装置 | |
CN113641742B (zh) | 一种数据抽取方法、装置、设备和存储介质 | |
CN108062327B (zh) | 客户端的匹配方法和装置 | |
CN109040089B (zh) | 网络策略审计方法、设备及计算机可读存储介质 | |
CN111367686A (zh) | 业务接口的调用方法及装置、计算机设备、存储介质 | |
CN111400289A (zh) | 智能用户分类方法、服务器及存储介质 | |
WO2023092981A1 (zh) | 流式数据处理方法、规则插件、流式数据处理模块及系统 | |
CN110881030A (zh) | 基于logstash的记录web服务管理员操作日志的方法及装置 | |
CN110765089A (zh) | 一种分布式设备及其日志记录方法、装置和存储介质 | |
CN116257404A (zh) | 一种日志解析方法及计算设备 | |
CN115396159A (zh) | 一种容器镜像的检测方法及客户端、服务端 | |
CN105426422B (zh) | 分布式服务的数据处理方法及装置 | |
CN111475783A (zh) | 数据检测方法、系统及设备 | |
CN110708208B (zh) | 监控数据的采集方法及装置、存储介质、终端 | |
CN112148479B (zh) | 基于Siddhi日志审计中的数据处理方法、装置和计算机设备 | |
CN113296831B (zh) | 应用标识的提取方法、装置、计算机设备及存储介质 | |
CN113032089B (zh) | 一种基于api网关的分布式仿真服务构建方法 | |
CN113986978A (zh) | 一种任务名称查询方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |