串口权限控制方法及装置与流程

文档序号:16247384发布日期:2018-12-11 23:42阅读:548来源:国知局
串口权限控制方法及装置与流程

本申请涉及串口通信技术领域,具体而言,涉及一种串口权限控制方法及装置。

背景技术

一般地,网络设备(比如,路由器或交换机)都支持串口通信,管理人员可以通过该串口登录网络设备,通过串口对网络设备进行管理、维护、执行命令、查看系统日志输出等串口权限操作。通常情况下,每台网络设备只有一个串口。

容器是一种虚拟化技术,通过容器技术,一台物理设备可以模拟出多台虚拟设备,多个容器可以进行独立的配置管理。

在单机不中断业务升级(in-servicesoftwareupgrade,简称issu)环境中,为了确保在软件升级后计算机不重启,使用多容器(比如,两个)的方式完成软件版本的升级。旧软件版本运行在一个容器中,软件升级时新的软件版本运行于另外的容器中,在进行软件升级过程中,多个容器都处于运行状态。

在这种状况下,用户需要保持对该多个容器都有操作权限,以及时了解各个容器的容器状态,如此,多个容器共享一个串口的串口权限便成为本领域人员急需解决的技术问题。



技术实现要素:

本申请的实施例描述一种串口权限控制方法及装置,用于解决多个容器共享一个串口权限的技术问题。

第一方面,本申请实施例提供一种串口权限控制方法,应用于运行有多个容器的网络设备,所述网络设备包括一个串口,所述方法包括:

检测通过所述串口输入的指令是否为退出当前容器的指令;

若检测到所述指令为退出当前容器的指令,则提供当前运行容器的容器属性信息供用户选择;

响应用户的选择操作,使所述选择操作所选择的目的容器获得所述串口的串口权限,以便通过所述串口对所述目的容器进行操作。

上述方法中,串口权限可以赋予多个运行的不同容器,从而实现对不同容器的操作,便于对不同容器的容器状态进行监控。

可选地,在本实施例中,在检测通过串口输入的指令是否为退出当前容器的指令之前,所述方法还包括:

在检测到所述网络设备的系统被启动时,将串口权限分配给预先设定的默认容器。

可选地,在本实施例中,所述方法还包括:

获取所述网络设备中各个容器的容器属性信息,其中,所述容器属性信息包括各个容器的容器id、容器名称、容器状态或容器启动命令。

可选地,在本实施例中,所述获取所述网络设备中各个容器的容器属性信息的步骤包括:

采用docker命令获取所述网络设备中的各个容器的容器属性信息。

可选地,在本实施例中,所述方法还包括:

通过所述串口将所述容器id、容器名称、容器状态或容器启动命令中的一个或者多个发送至与所述网络设备连接的显示设备,用于使在所述显示设备上显示所述容器id、容器名称、容器状态或容器启动命令中的一个或者多个。

第二方面,本申请实施例还提供一种串口权限控制装置,应用于运行有多个容器的网络设备,所述网络设备包括一个串口,所述装置包括:

指令检测模块,用于检测通过所述串口输入的指令是否为退出当前容器的指令;

信息提供模块,用于若检测到所述指令为退出当前容器的指令,则提供当前运行容器的容器属性信息供用户选择;

响应模块,用于响应用户的选择操作,使所述选择操作所选择的目的容器获得所述串口的串口权限,以便通过所述串口对所述目的容器进行操作。

可选地,在本实施例中,所述装置还包括:

分配模块,用于在检测到所述网络设备的系统被启动时,将串口权限分配给预先设定的默认容器。

可选地,在本实施例中,所述装置还包括:

获取模块,用于获取所述网络设备中各个容器的容器属性信息,其中,所述容器属性信息包括各个容器的容器id、容器名称、容器状态或容器启动命令。

可选地,在本实施例中,所述获取模块具体用于:

采用docker命令获取所述网络设备中的各个容器的容器属性信息。

可选地,在本实施例中,所述信息提供模块具体用于:

通过所述串口将所述容器id、容器名称、容器状态或容器启动命令中的一个或者多个发送至与所述网络设备连接的显示设备进行显示,用于使在所述显示设备上显示所述容器id、容器名称、容器状态或容器启动命令中的一个或者多个。

第三方面,本申请实施例还提供一种网络设备,所述网络设备包括处理器及存储有若干计算机指令的非易失性存储器,所述计算机指令被所述处理器执行时,所述网络设备执行第一方面所述的串口权限控制方法。

第四方面,本申请实施例还提供一种可读存储介质,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在网络设备执行第一方面所述的串口权限控制方法。

相对于现有技术而言,本申请具有以下有益效果:

本申请实施例提供的串口权限控制方法及装置,首先,网络设备检测通过串口输入的指令是否为退出当前容器的指令;接着,在为退出当前容器的指令时,网络设备提供当前运行容器的容器属性信息供用户选择;最后,网络设备响应用户的选择操作,使所述选择操作所选择的目的容器获得所述串口的串口权限,以便通过所述串口对所述目的容器进行操作。上述方法中,串口权限赋予多个运行的不同容器,从而实现一个串口对多个容器的操作,同时,在上述方法中不需要对容器事先进行配置,串口权限控制时只需选择对应想要获得串口权限的容器即可,操作方便简单。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的网络设备的结构框图;

图2为本申请实施例提供的网络设备的框架图;

图3为本申请实施例提供的串口权限控制方法的一种流程示意图;

图4为本申请实施提供的容器属性信息列表;

图5为本申请实施例提供的串口权限控制方法的另一种流程示意图;

图6为本申请实施例提供的串口权限控制装置的一种功能模块框图;

图7为本申请实施例提供的串口权限控制装置的另一种功能模块框图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。

目前在issu多容器环境下,以下以双容器环境为例,只有其中一个拥有串口权限的容器能够使用设备的串口,也只能通过串口对该一个容器进行操作,无法对其他容器进行操作。

在issu升级的过程中,用户或开发人员只能通过串口对网络设备进行操作,在这种情形下,用户或开发人员往往需要在两个容器之间进行灵活的切换,以便监控升级软件所在容器的软件升级进度和运行旧版本软件的容器的容器状态。

现有技术中,存在一种采用远程登录协议(比如,telent,ssh等)实现多容器控制的方案,在该方案中用户需要通过远程登录协议登录到相应的多个容器,进行容器操作。

然而申请人发现:虽然,现有技术中的方案克服了一个串口只能控制一个容器的不足,然而采用上述方案,需要满足以下条件:需要容器中的系统完全启动,且容器中配置有远程登录协议后才能正常登录。

在以下情况下,用户无法通过远程登录协议登录容器:

1.容器的系统正在启动过程中,还未完成启动。

2.容器的系统中没有预先配置远程登录协议。

3.容器的系统出现异常,无法正常使用远程登录协议。

为了克服上述现有技术中存在的缺陷,经过申请人研究,提出了以下解决方案,下面进行详细说明。

请参照图1,图1为本申请实施例提供的一种网络设备100的结构示意图。所述网络设备100包括串口权限控制装置110、存储器111、处理器112及通信单元113。

所述存储器111、处理器112及通信单元113的各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。

其中,所述存储器111可以是,但不限于,随机存取存储器(英文:randomaccessmemory,简称:ram),只读存储器(英文:readonlymemory,简称:rom),可编程只读存储器(英文:programmableread-onlymemory,简称:prom),可擦除只读存储器(英文:erasableprogrammableread-onlymemory,简称:eprom),电可擦除只读存储器(英文:electricerasableprogrammableread-onlymemory,简称:eeprom)等。其中,存储器111用于存储程序,所述处理器112在接收到执行指令后,执行所述程序。所述通信单元113用于通过网络建立所述网络设备100与其它设备(比如用户终端)之间的通信连接,并用于通过网络进行数据的接收和发送。

串口权限控制装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器111中或固化在所述网络设备100的操作系统(英文:operatingsystem,简称:os)中的软件功能模块。所述处理器112用于执行所述存储器111中存储的可执行模块,例如串口权限控制装置110所包括的软件功能模块及计算机程序等。

应当理解的是,图1所示的结构仅为示意,所述网络设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

请参照图2,图2为本申请实施例提供的网络设备100的一种框架图,在框架图中,网络设备100还包括串口120、串口权限控制装置110及容器130。串口权限控制装置110控制串口120与容器130之间的连接关系。

容器130不模拟cpu、内存等物理器件,不存在自己的内核,一般只运行一组用户态程序,并和宿主机共享一个内核。容器130的出现主要是为了满足虚拟机隔离和进程隔离之间的空白,其中,虚拟机隔离属于重量级隔离,具有硬件资源(比如,内存、硬盘及cpu)消耗大的缺点;进程隔离属于轻量级隔离,具有隔离效果不理想的缺点。

容器130将应用所需的运行环境、缓存环境、数据库环境等封装起来,以最简洁的方式支持应用运行。一个容器130可以相当于一个独立完整的软件系统(比如,comware软件系统)。在本实施例中,所述网络设备100上可以运行多个容器130。

串口120(serialinterface)采用串行通信方式的扩展接口,串口120将数据一位一位地按照顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,从而大大降低了成本,特别适用于远距离通信。串口120可以用于连接外部pc机,并通过pc机上运行的终端模拟软件实现与网络设备100的交互,如此即登录网络设备100上运行的串口控制台(串口控制模拟软件)实现与网络设备100的交互。在本实施例中,所述网络设备100包括一个串口120。

结合图1,可知,串口权限控制装置110可以存储在所述存储器111中,并被处理器112执行。在串口权限控制装置110被执行时实现串口在多个容器130之间的切换操作。切换操作的流程将在下面具体进行阐述。

请参照图3,图3为本申请实施例提供的应用于图2中的网络设备100的访问控制方法的流程图,下面对所述方法包括的各个步骤进行详尽的阐述。

步骤s310,检测通过串口输入的指令是否为退出当前容器的指令。

输入设备通过串口120输入指令,输入的指令可以是通过键盘输入的按键指令,也可以是通过显示屏幕输入的代码指令。以按键指令为例,按键指令可以是单个按键被按下时生成的按键指令,也可以是多个按键被同时按下时生成的按键指令。

在本实施例中,所述退出当前容器130的指令可以是多个按键被同时按下时生成的按键指令,具体地,退出当前容器130的指令可以是ctrl+p+q三个按键的组合。

在本实施例中,当前容器130是指具有串口权限的容器130,退出当前容器130是指当前容器130将串口权限放弃,即将当前容器130从可通过串口操作变更为不能通过串口操作的过程。

对用户通过输入设备经由串口120输入的指令进行检测,若检测到退出当前容器130的指令,则进入步骤s320;反之,继续步骤s310。

步骤s320,提供当前运行容器的容器属性信息供用户选择。

在输入的指令为退出当前容器130的指令时,将当前运行容器130的容器属性信息通过串口120发送给输入设备,输入设备(显示设备)将上述容器属性信息进行显示,以便用户进行选择。

请参照图4,在本实施例中,容器属性信息可以包括容器130的容器id、容器名称、容器状态或容器启动命令等。具体地,以图4中编号为1的容器130为例,编号为1的容器130的容器id可以为329de3dabb50;容器130的容器名称可以为v9000;容器130的容器状态可以为上线6小时;容器130的容器启动命令可以为"/bin/bash/bin/v9.sh"。

步骤s330,响应用户的选择操作,使所述选择操作所选择的目的容器获得串口的串口权限,以便通过串口对所述目的容器进行操作。

在本实施例中,网络设备100将当前运行容器130的容器属性信息发送到与串口120连接的输入设备上供用户选择,其中,用户可以通过输入容器的编号进行容器130选择,也可以通过输入容器的id或容器的名称进行容器130选择。

在完成选择操作后,网络设备100响应上述选择操作,将串口权限赋予选择的目的容器130。以便用户通过所述串口实现对目的容器的操作。其中所述操作包括:对容器状态的查看、容器系统的命令及配置的下发等操作。

本实施例提供的串口权限控制方法,首先,网络设备100检测通过串口120输入的指令是否为退出当前容器130的指令;接着,在为退出当前容器130的指令时,提供当前运行容器130的容器属性信息供用户选择;最后,响应用户的选择操作,将所述串口权限控制赋予选择的目的容器,以通过所述串口对所述目的容器进行操作。

上述方法可以解决多容器130环境下唯一一个串口120的共享使用问题,支持用户根据需要切换到不同容器的操作,可以对容器130的运行状态进行监控和查看,有针对性地做相应的控制和操作,同时,在上述方法中不需要对容器事先进行配置,串口权限控制时只需选择对应想要获得串口权限的容器即可,操作方便简单。

本申请实施例还包括获取容器属性信息的步骤,具体地,在本实施例的一种实施方式中,网络设备100可以在检测到退出当前容器130的指令时,获取网络设备100中各个容器130的容器属性信息。

可选地,采用docker命令获取所述网络设备中的各个容器130的容器属性信息。

具体地,可以采用dockerps命令查看网络设备中所有运行的容器列表;使用dockerinspect命令可以查看每个容器130更加详尽的容器属性信息。

当然可以理解的是,本实施例还可以采用其他docker命令,其他docker命令可以参照现有技术,在此就不再一一列举。

在本实施例的另一种实施方式中,网络设备100也可以按照一定的时间间隔获取运行的各个容器130的容器属性信息。在检测到退出当前容器130的指令时,将最近一次获取的容器属性信息作为当前运行容器130的容器属性信息供用户选择,其中,当前运行容器130是指当前在网络设备100上运行的所有容器130。

在本实施例中,网络设备100通过串口120将容器属性信息发送给与网络设备100连接的显示设备。显示设备显示容器属性信息时,可以将显示容器id、容器名称、容器状态或容器启动命令中的一个或者多个进行显示。

请参照图5,在本申请实施例中,在步骤s310之前,所述方法还可以包括:

步骤s309,在检测到所述网络设备的系统被启动时,将串口权限分配给预先设定的默认容器130。

在网络设备100的系统启动时,将串口权限分配给默认容器130,默认容器130可以设置为用户最为关心的容器130,如此设置可以减小用户不必要的串口权限控制操作。

本申请实施例还提供一种串口权限控制装置110,与上面实施例不同的是,本串口权限控制装置110是从虚拟装置的角度描述本申请方案的。请参照图6,串口权限控制装置110可以包括以下模块。

指令检测模块1101,用于检测通过串口120输入的指令是否为退出当前容器的指令。

输入设备通过串口120输入指令,输入的指令可以是通过键盘输入的按键指令,也可以是通过显示屏幕输入的代码指令。以按键指令为例,按键指令可以是单个按键被按下时生成的按键指令,也可以是多个按键被同时按下时生成的按键指令。

在本实施例中,所述退出当前容器130的指令可以是多个按键被同时按下时生成的按键指令,具体地,退出当前容器130的指令可以是ctrl+p+q三个按键的组合。

在本实施例中,当前容器130是指具有串口权限的容器130,退出当前容器130是指当前容器130将串口权限放弃,即将当前容器130从可通过串口操作变更为不能通过串口操作的过程。

信息提供模块1102用于若检测到所述指令为退出当前容器的指令,则提供当前运行容器的容器属性信息供用户选择。

信息提供模块1102具体用于:通过所述串口120将所述容器id、容器名称、容器状态或容器启动命令中的一个或者多个发送至与所述网络设备100连接的显示设备进行显示,用于使在所述显示设备上显示所述容器id、容器名称、容器状态或容器启动命令中的一个或者多个。

响应模块1103,用于响应用户的选择操作,使选择操作所选择的目的容器获得串口的串口权限,以便通过串口对所述目的容器进行操作。

请参照图7,在本实施例中,所述串口权限控制装置110还可以包括:分配模块1104。

分配模块1104,用于在检测到所述网络设备的系统被启动时,将串口权限分配给预先设定的默认容器130。

请再次参照图7,在本实施例中,所述串口权限控制装置110还可以包括获取模块1105。

获取模块1105用于获取所述网络设备中各个容器的容器属性信息。

在本实施例的一种实施方式中,信息提供模块1102可以在检测到退出当前容器的指令时,获取网络设备100中各个容器的容器属性信息。

可选地,获取模块1105采用docker命令获取所述网络设备100中的各个容器130的容器属性信息。具体地,获取模块1105可以采用dockerps命令查看网络设备中所有运行的容器列表,使用dockerinspect命令可以查看每个容器130更加详尽的容器属性信息。

在本实施例的另一种实施方式中,获取模块1105也可以按照一定的时间间隔获取运行的各个容器130的容器属性信息。在检测到退出当前容器的指令时,信息提供模块1102将最近一次获取的容器属性信息作为当前运行容器130的容器属性信息供用户选择。

如果上述功能以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得网络设备100执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取存储器(英文:randomaccessmemory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

综上所述,本申请实施例提供的串口权限控制方法及装置。首先,网络设备检测通过串口输入的指令是否为退出当前容器的指令;接着,在为退出当前容器的指令时网络设备提供当前运行容器的容器属性信息供用户选择;最后,网络设备响应用户的选择操作,由选择操作所选择的目的容器获得串口权限,以通过所述串口对所述目的容器进行操作。

上述方法可以解决多容器环境下唯一一个串口的共享使用问题,支持用户根据需要切换到不同容器的操作,可以对容器的运行状态进行监控和查看,有针对性地做相应的控制和操作。同时,在上述方法中不需要对容器事先进行配置,串口权限控制时只需选择对应想要获得串口权限的容器即可,操作方便简单。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

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