首页> 中国专利> 一种固态硬盘命令行工具的融合方法及相关装置

一种固态硬盘命令行工具的融合方法及相关装置

摘要

本申请公开了一种固态硬盘命令行工具的融合方法,包括:设置Shell脚本;所述Shell脚本中设置有第一参数与第二参数;所述第一参数表征命令行工具执行的命令,所述第二参数表征所述命令的执行对象;当输入包含所述第一参数的值与所述第二参数的值的Shell脚本执行命令后,执行所述Shell脚本,由所述Shell脚本根据所述第二参数的值确定固态硬盘的设备ID,并调用所述设备ID对应的所述命令行工具对所述固态硬盘执行所述第一参数的值对应的命令。该方法能够有效缩短开发时间,提高开发效率,且利于固态硬盘的扩展。本申请还公开了一种固态硬盘命令行工具的融合装置、设备及计算机可读存储介质,均具有上述技术效果。

著录项

  • 公开/公告号CN112559543A

    专利类型发明专利

  • 公开/公告日2021-03-26

    原文格式PDF

  • 申请/专利权人 北京浪潮数据技术有限公司;

    申请/专利号CN202011502153.8

  • 发明设计人 张彬;

    申请日2020-12-17

  • 分类号G06F16/23(20190101);G06F16/245(20190101);

  • 代理机构11227 北京集佳知识产权代理有限公司;

  • 代理人高勇

  • 地址 100085 北京市海淀区上地信息路2号C栋5层

  • 入库时间 2023-06-19 10:24:22

说明书

技术领域

本申请涉及服务器技术领域,特别涉及一种固态硬盘命令行工具的融合方法;还涉及一种固态硬盘命令行工具的融合装置、设备以及计算机可读存储介质。

背景技术

当前,固态硬盘的开发厂商通常会开发多个系列的固态硬盘,且各个系列的固态硬盘的命令行工具的命令与功能通常不完全相同,一个命令行工具通常只适用于一个系列的固态硬盘。针对这种情况,需要一种有效融合多系列固态硬盘的命令行工具的方案。目前,现有的融合多系列固态硬盘的命令行工具的方案是从命令行工具的代码出发,将多个系列的固态硬盘的命令行工具的底层代码合并开发,开发出一个适用于多系列固态硬盘的命令行工具。然而,这种方式的开发周期较长,需要投入较多的人力和时间,且不利于扩展新系列的固态硬盘。当有新系列的固态硬盘研发完成后,还需要再次对合并的命令行工具的代码进行维护,以使命令行工具也能够适用于新系列的固态硬盘,需要再次投入较多的人力,花费较多的时间。

有鉴于此,如何解决上述技术缺陷已成为本领域技术人员亟待解决的技术问题。

发明内容

本申请的目的是提供一种固态硬盘命令行工具的融合方法,能够有效缩短开发时间,提高开发效率,且利于固态硬盘的扩展。本申请的另一个目的是提供一种固态硬盘命令行工具的融合装置、设备以及计算机可读存储介质,均具有上述技术效果。

为解决上述技术问题,本申请提供一种固态硬盘命令行工具的融合方法,包括:

设置Shell脚本;所述Shell脚本中设置有第一参数与第二参数;所述第一参数表征命令行工具执行的命令,所述第二参数表征所述命令的执行对象;

当输入包含所述第一参数的值与所述第二参数的值的Shell脚本执行命令后,执行所述Shell脚本,由所述Shell脚本根据所述第二参数的值确定固态硬盘的设备ID,并调用所述设备ID对应的所述命令行工具对所述固态硬盘执行所述第一参数的值对应的命令。

可选的,所述根据所述第二参数的值确定固态硬盘的设备ID包括:

当所述第二参数的值为固态硬盘的序列号时,获取所述序列号对应的固态硬盘的nvme块设备号,并查找所述nvme块设备号对应的总线编号;

根据所述总线编号查找得到所述设备ID。

可选的,所述根据所述第二参数的值确定固态硬盘的设备ID包括:

当所述第二参数的值为固态硬盘的总线编号时,查找所述总线编号对应的所述设备ID。

可选的,所述根据所述第二参数的值确定固态硬盘的设备ID包括:

当所述第二参数缺省时,遍历所有已上电的固态硬盘的总线编号,并根据所述总线编号确定已上电的固态硬盘的设备ID。

可选的,所述遍历所有已上电的固态硬盘的总线编号,并根据所述总线编号确定已上电的固态硬盘的设备ID包括:

遍历所有已上电的固态硬盘的总线编号,并建立一个包含找到的所有总线编号的总线编号列表;

查找所述总线编号列表中的各所述总线编号对应的设备ID,并建立一个包含找到的所有设备ID的设备ID列表。

可选的,查找所述总线编号对应的设备ID前还包括:

查找所述总线编号对应的nvme块设备号;

若能够查找到所述总线编号对应的nvme块设备号,则查找所述总线编号对应的设备ID。

可选的,所述Shell脚本与各所述命令行工具放在同一个文件夹下。

为解决上述技术问题,本申请还提供了一种固态硬盘命令行工具的融合装置,包括:

设置模块,用于设置Shell脚本;所述Shell脚本中设置有第一参数与第二参数;所述第一参数表征命令行工具执行的命令,所述第二参数表征所述命令的执行对象;

执行模块,用于当输入包含所述第一参数的值与所述第二参数的值的Shell脚本执行命令后,执行所述Shell脚本,由所述Shell脚本根据所述第二参数的值确定固态硬盘的设备ID,并调用所述设备ID对应的所述命令行工具对所述固态硬盘执行所述第一参数的值对应的命令。

为解决上述技术问题,本申请还提供了一种固态硬盘命令行工具的融合设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上任一项所述的固态硬盘命令行工具的融合方法的步骤。

为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的固态硬盘命令行工具的融合方法的步骤。

本申请所提供的固态硬盘命令行工具的融合方法,包括:设置Shell脚本;所述Shell脚本中设置有第一参数与第二参数;所述第一参数表征命令行工具执行的命令,所述第二参数表征所述命令的执行对象;当输入包含所述第一参数的值与所述第二参数的值的Shell脚本执行命令后,执行所述Shell脚本,由所述Shell脚本根据所述第二参数的值确定固态硬盘的设备ID,并调用所述设备ID对应的所述命令行工具对所述固态硬盘执行所述第一参数的值对应的命令。

可见,相较于现有的将多个系列的固态硬盘的命令行工具的底层代码合并开发的融合方案,本申请所提供的固态硬盘命令行工具的融合方法,通过Shell脚本实现多系列固态硬盘的命令行工具的融合,由Shell脚本对固态硬盘进行区分并调用相应的命令行工具,而不改变各系列固态硬盘的命令行工具的底层代码,不需要对命令行工具的底层代码进行开发与维护,由此能够有效缩短开发时间,提高开发效率,且利于固态硬盘的扩展。

本申请所提供的固态硬盘命令行工具的融合装置、设备以及计算机可读存储介质均具有上述技术效果。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种固态硬盘命令行工具的融合方法的流程示意图;

图2为本申请实施例所提供的一种固态硬盘命令行工具的融合装置的示意图;

图3为本申请实施例所提供的一种固态硬盘命令行工具的融合设备的示意图。

具体实施方式

本申请的核心是提供一种固态硬盘命令行工具的融合方法,能够有效缩短开发时间,提高开发效率,且利于固态硬盘的扩展。本申请的另一个目的是提供一种固态硬盘命令行工具的融合装置、设备以及计算机可读存储介质,均具有上述技术效果。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种固态硬盘命令行工具的融合方法的流程示意图,参考图1所示,该方法包括:

S101:设置Shell脚本;Shell脚本中设置有第一参数与第二参数;第一参数表征命令行工具执行的命令,第二参数表征命令的执行对象;

具体的,本申请所提供的固态硬盘命令行工具的融合方法,不改变各系列固态硬盘的命令行工具的底层代码,在编译好各个命令行工具的基础上,通过编写Shell脚本实现各命令行工具的融合。Shell脚本中设置有第一参数与第二参数。第一参数是命令字,表征命令行工具执行的命令,第二参数表征命令的执行对象,即命令执行于哪个或哪些固态硬盘。

其中,在一种具体的实施方式中,Shell脚本与各命令行工具可以放在同一个文件夹下。

S102:当输入包含第一参数的值与第二参数的值的Shell脚本执行命令后,执行Shell脚本,由Shell脚本根据第二参数的值确定固态硬盘的设备ID,并调用设备ID对应的命令行工具对固态硬盘执行第一参数的值对应的命令。

具体的,实际使用过程中,当输入Shell脚本执行命令(包含第一参数的值与第二参数的值)后,系统执行Shell脚本,由Shell脚本根据输入的第二参数的值确定固态硬盘的设备ID,并调用该设备ID对应的命令行工具对固态硬盘执行第一参数的值对应的命令。

在Shell脚本与各命令行工具放在同一个文件夹下的情况下,用户可在此文件夹下打开命令行,并在命令行输入Shell脚本执行命令,进而当命令行输入Shell脚本执行命令后,系统执行Shell脚本,由Shell脚本根据输入的第二参数的值确定固态硬盘的设备ID,并调用该设备ID对应的命令行工具对固态硬盘执行第一参数的值对应的命令。

例如,参考表1所示:

表1

若设备ID为1000至1005中的任意一个,则对应的固态硬盘为系列1的固态硬盘,此时对应的命令行工具为inspurmgr工具,Shell脚本调用inspurmgr工具对固态硬盘下发第一参数的值对应的命令。若设备ID为1006或1007,则对应的固态硬盘为系列2的固态硬盘,此时对应的命令行工具为inspuradmin工具,Shell脚本调用inspurmgr工具对固态硬盘下发第一参数的值对应的命令。

其中,在一种具体的实施方式中,根据第二参数的值确定固态硬盘的设备ID包括:当第二参数的值为固态硬盘的序列号时,获取序列号对应的固态硬盘的nvme块设备号,并查找nvme块设备号对应的总线编号;根据总线编号查找得到设备ID。

具体而言,第二参数具有三种可选值:固态硬盘的serial number即固态硬盘的序列号,固态硬盘的bus number即固态硬盘的总线编号,以及缺省即未输入任何值,第二参数的值为空。本实施例为第二参数的值为固态硬盘的序列号的情况。当第二参数的值为固态硬盘的序列号时,Shell脚本通过nvme list命令获取该序列号对应的固态硬盘的nvme块设备号,并且在命令ls-l/sys/class/block/nvme*所列出的所有nvme块设备号中查找上述获取到的nvme块设备号对应的总线编号,进而根据查找到的总线编号通过lspci命令查找得到相应的device ID即设备ID。

另外,在一种具体的实施方式中,根据第二参数的值确定固态硬盘的设备ID包括:当第二参数的值为固态硬盘的总线编号时,查找总线编号对应的设备ID。且在一种具体的实施方式中,查找总线编号对应的设备ID前还包括:查找总线编号对应的nvme块设备号;若能够查找到总线编号对应的nvme块设备号,则查找总线编号对应的设备ID。

具体而言,本实施例为第二参数的值为固态硬盘的总线编号的情况。当第二参数的值为固态硬盘的总线编号时,Shell脚本首先查找该总线编号对应的nvme块设备号,并在能够查找到对应的nvme块设备号的情况下,根据总线编号通过lspci命令(linux系统下显示所有的PCIE设备信息的命令)查找得到相应的设备ID。

可以明白的是,在第二参数的值为固态硬盘的序列号与第二参数的值为固态硬盘的总线编号的情况下,根据总线编号查找得到的设备ID唯一,此时第一参数的值对应的命令针对的是单个固态硬盘。

此外,在一种具体的实施方式中,根据所述第二参数的值确定固态硬盘的设备ID包括:当所述第二参数缺省时,遍历所有已上电的固态硬盘的总线编号,并根据所述总线编号确定已上电的固态硬盘的设备ID。

具体而言,本实施例为第二参数的值缺省的情况。当第二参数缺省时,Shell脚本首先遍历所有已上电的固态硬盘的总线编号,然后根据遍历所得的各总线编号确定已上电的各固态硬盘的设备ID。

区别于当第二参数的值为固态硬盘的序列号与第二参数的值为固态硬盘的总线编号时,第一参数的值对应的命令针对的是单个固态硬盘的情况,当第二参数缺省时,第一参数的值对应的命令针对的是一个或多个固态硬盘。

进一步,在上述实施例的基础上,遍历所有已上电的固态硬盘的总线编号,并根据总线编号确定已上电的固态硬盘的设备ID包括:遍历所有已上电的固态硬盘的总线编号,并建立一个包含找到的所有总线编号的总线编号列表;查找总线编号列表中的各总线编号对应的设备ID,并建立一个包含找到的所有设备ID的设备ID列表。

具体而言,当第二参数缺省时,Shell脚本首先通过lspci命令查找所有已上电固态硬盘的总线编号,并建立一个包含找到的所有总线编号的总线编号列表,然后通过lspci命令查找总线编号列表中的各总线编号对应的设备ID,并建立一个包含找到的所有设备ID的设备ID列表。设备ID列表中的各设备ID对应的固态硬盘即为第一参数的值对应的命令的执行对象。

其中,查找总线编号对应的设备ID前还包括:查找总线编号对应的nvme块设备号;若能够查找到总线编号对应的nvme块设备号,则查找总线编号对应的设备ID。

具体而言,当第二参数的值缺省时,Shell脚本首先通过lspci命令找到所有已上电的固态硬盘的总线编号,并建立总线编号列表;其次遍历总线编号列表,通过命令ls-l/sys/class/block/nvme*,查找每个总线编号对应的nvme块设备号,并建立一个nvme块设备号,对于每个可以查找到对应的nvme块设备号的总线编号,通过lspci命令获取其对应的设备ID,并建立一个设备ID列表。因为如果不能查找到nvme块设备号,那么表明此固态硬盘故障,无法接收命令,所以对于不能查找到对应的nvme块设备号的总线编号,则不再通过lspci命令获取其对应的设备ID。

综上所述,本申请所提供的固态硬盘命令行工具的融合方法,通过Shell脚本实现多系列固态硬盘的命令行工具的融合,由Shell脚本对固态硬盘进行区分并调用相应的命令行工具,而不改变各系列固态硬盘的命令行工具的底层代码,不需要对命令行工具的底层代码进行开发与维护,由此能够有效缩短开发时间,提高开发效率,且利于固态硬盘的扩展。

本申请还提供了一种固态硬盘命令行工具的融合装置,下文描述的该装置可以与上文描述的方法相互对应参照。请参考图2,图2为本申请实施例所提供的一种固态硬盘命令行工具的融合装置的示意图,结合图2所示,该装置包括:

设置模块10,用于设置Shell脚本;所述Shell脚本中设置有第一参数与第二参数;所述第一参数表征命令行工具执行的命令,所述第二参数表征所述命令的执行对象;

执行模块20,用于当输入包含所述第一参数的值与所述第二参数的值的Shell脚本执行命令后,执行所述Shell脚本,由所述Shell脚本根据所述第二参数的值确定固态硬盘的设备ID,并调用所述设备ID对应的所述命令行工具对所述固态硬盘执行所述第一参数的值对应的命令。

在上述实施例的基础上,可选的,所述执行模块20具体用于当所述第二参数的值为固态硬盘的序列号时,获取所述序列号对应的固态硬盘的nvme块设备号,并查找所述nvme块设备号对应的总线编号;根据所述总线编号查找得到所述设备ID。

在上述实施例的基础上,可选的,所述执行模块20具体用于当所述第二参数的值为固态硬盘的总线编号时,查找所述总线编号对应的所述设备ID。

在上述实施例的基础上,可选的,所述执行模块具体用于当所述第二参数缺省时,遍历所有已上电的固态硬盘的总线编号,并根据所述总线编号确定已上电的固态硬盘的设备ID。

在上述实施例的基础上,可选的,所述执行模块20具体用于遍历所有已上电的固态硬盘的总线编号,并建立一个包含找到的所有总线编号的总线编号列表;查找所述总线编号列表中的各所述总线编号对应的设备ID,并建立一个包含找到的所有设备ID的设备ID列表。

在上述实施例的基础上,可选的,所述执行模块20还用于查找所述总线编号对应的nvme块设备号;若能够查找到所述总线编号对应的nvme块设备号,则查找所述总线编号对应的设备ID。

在上述实施例的基础上,可选的,所述Shell脚本与各所述命令行工具放在同一个文件夹下。

本申请还提供了一种固态硬盘命令行工具的融合设备,参考图3所示,该设备包括存储器1和处理器2。

存储器1,用于存储计算机程序;

处理器2,用于执行计算机程序实现如下的步骤:

设置Shell脚本;所述Shell脚本中设置有第一参数与第二参数;所述第一参数表征命令行工具执行的命令,所述第二参数表征所述命令的执行对象;当输入包含所述第一参数的值与所述第二参数的值的Shell脚本执行命令后,执行所述Shell脚本,由所述Shell脚本根据所述第二参数的值确定固态硬盘的设备ID,并调用所述设备ID对应的所述命令行工具对所述固态硬盘执行所述第一参数的值对应的命令。

对于本申请所提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。

本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下的步骤:

设置Shell脚本;所述Shell脚本中设置有第一参数与第二参数;所述第一参数表征命令行工具执行的命令,所述第二参数表征所述命令的执行对象;当输入包含所述第一参数的值与所述第二参数的值的Shell脚本执行命令后,执行所述Shell脚本,由所述Shell脚本根据所述第二参数的值确定固态硬盘的设备ID,并调用所述设备ID对应的所述命令行工具对所述固态硬盘执行所述第一参数的值对应的命令。

该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

对于本申请所提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的固态硬盘命令行工具的融合方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号