一种解析命令的方法和装置与流程

文档序号:13075423阅读:174来源:国知局
一种解析命令的方法和装置与流程

本申请涉及配置网络设备的领域,特别涉及一种解析命令的方法和装置。



背景技术:

为了保证网络设备的正常运行,通常需要配备管理员对网络设备进行维护。目前,管理员通常采用web方式和命令行方式对网络设备进行维护。web方式是指管理员使用浏览器访问网络设备web服务器,在登录网络设备后在浏览器上为网络设备下发配置等。命令行方式是指终端设备通过console、telnet等连接方式访问网络设备时,终端设备会提供对网络设备进行维护的命令行,管理员在命令行的提示符下输入命令,从而来对网络设备进行维护。

比如,当管理员在命令行中输入showrunning-config时,管理员就可以获取网络设备的配置命令。其中,showrunning-config为一种可以查看网络设备当前所有运行配置的配置命令。

其中,命令行是一种运行在设备上的提供解析命令、执行命令等功能的服务程序,在设备上以一种交互式终端界面的形式存在。命令行分为若干不同的视图,当管理员在命令行输入执行切换视图的命令时,命令行可以切换命令行视图。由于每个命令行视图中所能使用的命令是有限制的,因此管理员在命令行视图中输入命令时,只能使用该命令行视图允许的命令。另外,命令行通过命令树来存储网络设备上所有可执行的命令,以及各命令所在的命令行视图。其中,所述命令树为一种数据结构。

当网络设备的硬件配置或者容量跟不上网络运行的要求时,通常需要更换规格更高的网络设备替代原设备来工作,或者增加相同类型的网络设备来与原设备共同工作。

由于无论是更换新设备还是增加新设备,通常需要新设备的配置与原设备的配置保持一样,因此,管理员需要获取原设备的所有配置命令。管理员可以登录原设备的命令行,在命令行中输入showrunning-config来获取原设备的所有配置命令,然后,管理员可以将原设备的所有配置命令复制粘贴至新设备的命令行,通过新设备的命令行对新设备进行批量配置。

新设备的命令行对新设备进行批量配置时,依次读取粘贴至新设备的命令行中的配置命令,每读取到一条配置命令,都需要从命令树上遍历查找与该配置命令唯一匹配的命令,然后执行该唯一匹配的命令。

随着网络设备的配置越来越多,配置命令的数量也越来越多,比如路由表项、包过滤条目等数目可达10万数量级。配置命令越多,通过命令行对设备进行批量配置所需要消耗的时间也越多,这给管理员维护设备造成了极大的时间消耗,因此需要减少对设备进行批量配置时所消耗的时间。

在现有技术中,命令行每次将匹配到命令树上的命令的匹配结果保存至动态匹配缓存中。命令行后续查找与任一配置命令唯一匹配的命令时,先从动态匹配缓存中查找与该配置命令唯一匹配的命令,一旦查找到与该配置命令唯一匹配的命令,则执行该唯一匹配的命令,如果没有从动态匹配缓存中查找到与该配置命令唯一匹配的命令,则再遍历命令树上的命令,查找与该配置命令唯一匹配的命令。由于配置命令中存在重复性配置命令,从动态匹配缓存中查找与重复性配置命令唯一匹配的命令所消耗的时间,远小于遍历命令树上的命令,查找与重复性配置命令唯一匹配的命令,因此,可以减少命令行进行批量配置时所消耗的时间。

然而,现有技术虽然在一定程度上减少了终端设备通过命令行对网络设备进行批量配置时所消耗的时间,但是,当配置命令的数量庞大的时候,终端设备通过命令行对网络设备进行批量配置时所消耗的时间仍然远远不能满足管理员所设定的时间的要求。



技术实现要素:

有鉴于此,本申请提供一种解析命令的方法和装置,应用于终端设备,用于加快终端设备通过命令行对网络设备进行批量配置的速度。

具体地,本申请是通过如下技术方案实现的:

一种解析命令的方法,应用于终端设备,所述终端设备通过命令行对网络设备进行批量配置,所述终端设备预先配置了静态匹配缓存,所述静态匹配缓存用于存储解析条件以及与所述解析条件对应的命令执行函数,包括:

当读取到任一配置命令时,判断所述静态匹配缓存中是否存在解析条件;

如果所述静态匹配缓存中存在解析条件,从静态匹配缓存中查找与当前读取到的配置命令匹配的解析条件;

如果查找到与当前读取到的配置命令匹配的解析条件,执行与所述解析条件对应的命令执行函数。

一种解析命令的装置,应用于终端设备,所述终端设备通过命令行对网络设备进行批量配置,所述终端设备预先配置了静态匹配缓存,所述静态匹配缓存用于存储解析条件以及与所述解析条件对应的命令执行函数,包括:

判断单元,用于当读取到任一配置命令时,判断所述静态匹配缓存中是否存在解析条件;

查找单元,用于如果所述静态匹配缓存中存在解析条件,从静态匹配缓存中查找与当前读取到的配置命令匹配的解析条件;

执行单元,用于如果查找到与当前读取到的配置命令匹配的解析条件,执行与所述解析条件对应的命令执行函数。

本申请提供的技术方案带来的有益效果:

在本申请中,终端设备上预先配置了静态匹配缓存,所述静态匹配缓存用于存储解析条件以及与所述解析条件对应的命令执行函数,其中,所述解析条件针对具有重复性且具有唯一特征的配置命令,当终端设备当前读取到的配置命令满足解析条件时,直接执行与解析条件对应的命令执行函数。由于将具有重复性且具有唯一特征的配置命令中的唯一特征作为解析命令的条件,并将满足该解析条件时所需要的命令执行函数与该解析条件进行绑定,最后存储至静态匹配缓存中,当终端设备读取到配置命令时,优先将配置命令与静态匹配缓存中存储的解析条件进行匹配,一旦满足解析条件,就执行与该解析条件绑定的命令执行函数,采用这样的方式,相比于从存储了大量匹配结果的动态匹配缓存中查找到与该配置命令匹配的匹配结果,并基于该匹配结果执行配置操作所需要消耗的时间更少,从而加快终端设备通过命令行对网络设备进行批量配置的速度。

附图说明

图1为本申请实施例一示出的一种解析命令的方法流程图;

图2所示,为本申请一种解析命令的装置所在终端设备的一种硬件结构图;

图3为本申请实施例二示出的一种解析命令的装置。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在现有技术中,当在终端设备上登录原网络设备的命令行时,管理员可以在命令行中输入showrunning-config命令,其中,该showrunning-config命令用于获取网络设备所有的配置命令。在原网络设备的命令行中输入showrunning-config命令后,终端设备可以向原网络设备发送获取原网络设备所有配置命令的命令,原网络设备接收到该命令后,将读取本机中所有的配置命令,然后将所有的配置命令返回至终端设备。

当终端设备通过原网络设备的命令行接收到原网络设备的所有配置命令时,管理员可以登录新网络设备的命令行,然后从原网络设备的命令行中将原网络设备的所有配置命令复制至新网络设备的命令行中。

终端设备通过新网络设备的命令行逐条读取配置命令,当读取到第一条配置命令时,将读取到的配置命令与终端设备上配置的命令树中的命令进行顺次匹配,其中,命令树中存储了网络设备可以配置的所有命令以及与命令相关的数据。当读取到的配置命令匹配中唯一匹配的命令时,终端设备可以从命令树中读取该唯一匹配的命令所在的视图,最优匹配等级,然后将该唯一匹配的命令,该唯一匹配的命令所在的视图,以及最优匹配等级作为匹配结果存储至动态匹配缓存中,即每一条匹配结果中包括唯一匹配的命令,该唯一匹配的命令所在的视图,以及最优匹配等级。其中,匹配结果中的内容根据实际需要可以进行调整,比如,匹配结果中可以增加与该唯一匹配的命令相关的其它数据。

其中,动态匹配缓存中所能存储的匹配结果的数量是有限的,该数量通常远少于命令树中存储的命令的数量,因此,通常会预先设定动态匹配缓存中所述存储的匹配结果的阈值n,在现有技术中,在动态匹配缓存中存储的匹配结果的数量已经达到阈值情况下,当终端设备继续将新生成的匹配结果存储至动态匹配缓存中时,终端设备可以将动态匹配缓存中最早存储的匹配结果进行删除,以空出存储空间给新生成的匹配结果进行存储。其中,阈值n可以进行调整,不进行限定。

当终端设备后续读取到配置命令时,终端设备将后续读取到的配置命令先与动态匹配缓存中的匹配结果进行匹配,如果没有从动态匹配缓存中查找到包含唯一匹配的命令的匹配结果,再将配置命令与命令树中的命令进行匹配,以查找到唯一匹配的命令。

由于动态匹配缓存中存储的匹配结果的数量远少于命令树中的命令的数量,对于之前已经匹配过的配置命令,从动态匹配缓存中查找到匹配的匹配结果,比从命令树中查找到与该配置命令匹配的命令所花费的时间要少。

例如,命令树中存储了10000条命令,现在终端设备读取到了一条配置命令,与该配置命令唯一匹配的命令在命令树中的存储位置在9998,也就是说在当前读取到的配置命令匹配到唯一匹配的命令之前,还需要与其它9997条命令进行匹配。如果动态匹配缓存中存在了包含该唯一匹配命令的匹配结果,且该缓存表项在动态匹配缓存中的存储位置为2,那么将当前读取到的配置命令与命令树中的命令进行顺次匹配查找唯一匹配的命令所需要消耗的时间,远多于将当前匹配读取到配置命令与动态匹配缓存中的匹配结果进行顺次匹配查找唯一匹配的命令所需要消耗的时间。

在现有技术中,终端设备通过命令行将配置命令与命令树上的命令或者匹配结果中的命令进行匹配时,需要基于预设的拆分机制将配置命令进行拆分成若干的字符和/或字符串,然后通过判断拆分得到的字符和/或字符串与命令树上的命令或者匹配结果中的命令是否匹配的情况判断该命令是否为与该配置命令唯一匹配的命令。

具体地,终端设备依次读取该配置命令拆分后得到的字符和/或字符串,然后将读取到的字符和/或字符串与逐条读取到的匹配结果中的命令进行匹配,如果该配置命令拆分后得到的字符和/或字符串与该匹配结果中的命令均匹配成功,则确定该匹配结果中的命令为与该配置命令唯一匹配的命令,终端设备可以基于该匹配结果执行相应的配置操作,以对新网络设备完成基于该配置命令的配置操作。

如果该配置命令拆分得到的字符和/或字符串中任一条字符和/或字符串匹配不成功,则不再将该配置命令剩余的未进行匹配的字符和/或字符串进行匹配,终端设备可以确定该缓存表项中的命令与该配置命令不匹配,需要继续从动态匹配缓存中读取匹配结果,将该配置命令拆分得到的字符和/或字符串与缓存表项中的命令进行匹配,直到查找到包含与该配置命令唯一匹配的命令的匹配结果,如果动态匹配缓存中的匹配结果中的不存在包括与该配置命令唯一匹配的命令的匹配结果,则终端设备可以将该配置命令与命令树中的命令进行匹配,查找到与该配置命令唯一匹配的命令,终端设备将配置命令与命令树中的命令的匹配过程与配置命令与匹配结果中的命令的匹配过程相同,在此不再进行赘述。

例如,配置命令拆分得到3条字符串分别为a,b,c,终端设备可以将字符串a与从动态匹配缓存中读取到的匹配结果中的命令进行匹配,如果字符串a匹配成功,终端设备继续将字符串b与该匹配结果中的命令进行匹配,如果字符串b匹配成功,终端设备将最后一个字符串c与该匹配结果中的命令进行匹配,如果字符串c匹配成功,终端设备可以确定该匹配结果中的命令为与该配置命令唯一匹配的命令,然后基于该匹配结果执行相应的配置操作。如果这三条字符串任一条字符串匹配不成功,则确定该匹配结果中的命令与该配置命令不匹配,终端设备需要继续从动态匹配缓存中读取匹配结果,将该配置命令拆分得到的字符串与匹配结果中的命令进行匹配,直到查找到包含与该配置命令唯一匹配的命令的匹配结果,如果动态匹配缓存中的匹配结果中的不存在包括与该配置命令唯一匹配的命令的匹配结果,则终端设备可以将该配置命令与命令树中的命令进行匹配,查找到与该配置命令唯一匹配的命令。

然而,现有技术虽然在一定程度上减少了终端设备通过命令行对网络设备进行批量配置时所消耗的时间,但是,当配置命令的数量庞大的时候,终端设备通过命令行对网络设备进行批量配置时所消耗的时间仍然远远不能满足管理员所设定的时间的要求。

实施例一

为了解决现有技术中的问题,本申请实施例一提出了一种解析命令的方法,应用于终端设备,其中,终端设备上预选配置了静态匹配缓存,静态匹配缓存用于存储解析条件以及与解析条件对应的命令执行函数,请参见图1,图1为本申请实施例一示出的一种解析命令的方法流程图,具体执行以下步骤:

步骤101:当读取到任一配置命令时,判断所述静态匹配缓存中是否存在解析条件;

步骤102:如果所述静态匹配缓存中存在解析条件,从静态匹配缓存中查找与当前读取到的配置命令匹配的解析条件;

步骤103:如果查找到与当前读取到的配置命令匹配的解析条件,执行与所述解析条件对应的命令执行函数。

在本实施例中,终端设备上预先配置了静态匹配缓存,其中,静态匹配缓存用于存储解析条件以及与解析条件对应的命令执行函数,解析条件与命令执行函数绑定存储。当管理员将原网络设备的配置命令复制至新网络设备的命令行中后,终端设备通过新网络设备的命令行逐条读取配置命令。当终端设备通过新网络设备的命令行读取到配置命令时,将该配置命令与静态匹配缓存中的解析条件进行匹配。如果静态匹配缓存中存在与该配置命令匹配的解析条件,则终端设备执行与该解析条件对应的命令执行函数,完成配置操作,否则,终端设备将该配置命令与动态匹配缓存中的匹配结果进行匹配。如果动态匹配缓存中存在与该配置命令匹配的匹配结果,则终端设备基于匹配中的匹配结果,执行相应的配置操作,否则将该配置命令与命令树中的命令进行匹配,以查找与该配置命令唯一匹配的命令。

其中,静态匹配缓存能够存储的解析条件的数量有限,通常远小于动态匹配缓存中存储的匹配结果的数量,在本实施例中,管理员对静态匹配缓存能够存储的解析条件的数量设定了阈值n,在静态匹配缓存中解析条件的数量已经达到阈值的情况下,当终端设备继续将新的解析条件存储至静态匹配缓存中时,终端设备可以将最早存储至静态匹配缓存中的解析条件删除,以空出存储空间给新的解析条件进行存储。其中,阈值可以进行调整,不进行限定具体的数值。

由于,在不同的应用场景中,为了使终端设备通过命令对网络设备批量配置达到最佳速度状态,静态匹配缓存的阈值是不同的,因此需要在不同的应用场景中,设定不同的阈值。为了避免中断配置过程重新对静态匹配缓存进行调整,可以通过热补丁的方式更改静态匹配缓存。其中,热补丁为修复软件漏洞的一些代码,可以在不重启设备的情况下,对软件进行修复。

另外,上述解析条件用于判断配置命令是否满足该解析条件,上述命令执行函数用于当配置命令满足该解析条件时执行该命令执行函数。

以下为本实施例具体的实施过程:

具体地,当管理员将原网络设备的配置命令复制至新网络设备的命令行中后,终端设备通过新网络设备的命令行读取配置命令。当终端设备通过新网络设备的命令行读取到命令时,可以基于预设的拆分机制对该配置命令进行拆分,生成若干字符和/或字符串。例如,终端设备可以将配置命令中的空格为拆分标记,将该配置命令拆分成若干字符和/或字符串。

当终端设备得到若干字符和/或字符串后,终端设备可以判断静态匹配缓存中是否存在解析条件。如果静态匹配缓存中不存在解析条件,则终端设备将包含若干字符和/或字符串的配置命令与动态匹配缓存中的匹配结果进行匹配。其中,将包含若干字符和/或字符串的配置命令与动态匹配缓存中的匹配结果进行匹配这一过程为现有技术,请参见本实施例相关内容,在此不再进行赘述。

如果静态匹配缓存中存在解析条件,终端设备可以依次从静态匹配缓存中读取解析条件,然后通过判断该配置命令拆分得到的若干字符和/或字符串中是否存在满足该缓存表项中的解析条件的字符或者字符串,来判断该配置命令与解析条件是否匹配成功。

例如,解析条件为包含字符串“stringa”的配置命令,当终端设备读取到该解析条件时,终端设备可以判断读取到的配置命令拆分得到若干字符和/或字符串中是否存在字符串“stringa”。如果存在,则满足解析条件,终端设备可以认定读取到的配置命令与该解析条件匹配成功,如果不存在,则不满足解析条件,终端设备可以认定读取到的配置命令与该解析条件匹配不成功。

如果读取到的配置命令与当前从静态匹配缓存中读取到的解析条件匹配成功,终端设备可以读取与该解析条件绑定的命令执行函数,然后执行该命令执行函数。

如果读取到的配置命令与当前从静态匹配缓存中读取到的解析条件匹配不成功,则可以将该配置命令与动态匹配缓存中的匹配结果进行匹配,具体匹配过程参见本实施例中相关内容,在此不再进行赘述。

其中,从将配置命令与静态匹配缓存中的解析条件的匹配过程可以看出,配置命令拆分得到若干字符和/或字符串后,终端设备只需要判断这些字符和/或字符串中是否满足解析条件,当满足条件时,终端设备就可以执行与该解析条件绑定的命令执行函数。而现有技术中,终端设备需要将配置命令拆分得到的所有字符和/或字符串一一与从动态匹配缓存中的匹配结果中的命令进行匹配,只有所有字符和/或字符串与该匹配结果均匹配时,终端设备才可以基于该匹配结果执行相关的配置操作。

由于对配置命令与解析条件匹配成功后,终端设备通过命令执行函数的方式完成配置的方式所需要消耗的时间,相比于现有技术,当查找到与配置命令匹配的匹配结果后,终端设备基于匹配结果执行相关的配置操作完成配置的方式所需要消耗的时间更少。

而且,静态匹配缓存中解析条件的数量远少于动态匹配缓存中的匹配结果的数量,从静态匹配缓存中查找到与具有重复性且具有唯一特征的配置命令匹配的解析条件所需要消耗的时间,相比于从存储了大量匹配结果的动态匹配缓存中查找到与该配置命令匹配的匹配结果,所需要消耗的时间更少。

因此,通过配置静态匹配缓存,将具有重复性且具有唯一特征的配置命令中的唯一特征作为解析命令的条件,并将满足该解析条件时所需要的命令执行函数与该解析条件进行绑定,最后存储至静态匹配缓存中,当终端设备读取到配置命令时,优先将配置命令与静态匹配缓存中存储的解析条件进行匹配,一旦满足解析条件,就执行与该解析条件绑定的命令执行函数,在现有技术的基础上增加静态匹配缓存的方式,可以进一步加快终端设备通过命令行对网络设备进行批量配置的速度,从而实现管理员对终端设备通过命令行对网络设备进行批量配置的时间要求。

实施例二

为了解决现有技术中的问题,与前述一种解析命令的方法的实施例一相对应,本申请还提供了一种解析命令的装置的实施例二。

本申请一种解析命令的装置的实施例二可以应用在终端设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在终端设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请一种解析命令的装置所在终端设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的终端设备通常根据该解析命令的实际功能,还可以包括其他硬件,对此不再赘述。

请参见图3,图3为本申请实施例二示出的一种解析命令的装置,应用于终端设备,所述终端设备通过命令行对网络设备进行批量配置,所述终端设备预先配置了静态匹配缓存,所述静态匹配缓存用于存储解析条件以及与所述解析条件对应的命令执行函数,所述装置包括:判断单元310,查找单元320,执行单元330。

其中,判断单元310,用于当读取到任一配置命令时,判断所述静态匹配缓存中是否存在解析条件;

查找单元320,用于如果所述静态匹配缓存中存在解析条件,从静态匹配缓存中查找与当前读取到的配置命令匹配的解析条件;

执行单元330,用于如果查找到与当前读取到的配置命令匹配的解析条件,执行与所述解析条件对应的命令执行函数。

在本实施例中,所述终端设备预先配置了动态匹配缓存,所述动态匹配缓存用于存储任一配置命令成功匹配到命令树上的命令后得到的匹配结果,所述装置还包括:

匹配单元,用于如果所述静态匹配缓存中不存在解析条件,所述命令行将当前读取到的配置命令与所述动态匹配缓存中的匹配结果进行匹配;

以及,还用于如果当前读取到的配置命令中与静态匹配缓存中的所有解析条件均不匹配,将该配置命令与所述动态匹配缓存中的匹配结果进行匹配。

另外,在本实施例中,所述终端设备加载了热补丁程序,所述装置还包括:

更改单元,用于通过热补丁对静态匹配缓存进行更改。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1