本发明涉及计算机技术领域,更具体地说,涉及一种升级bios的方法、装置、系统、设备及计算机可读存储介质。
背景技术:
bios(basicinputoutputsystem)是计算机的基本输入输出系统,其为一组固化到计算机内主板上一个rom芯片上的程序,保存着计算机内最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,还可以从cmos中读写系统设置的具体信息。
在服务器中,bios为服务器提供最底层的、最直接的硬件设置和控制。若服务器中的bios需要升级,可以通过webui页面登录基板管理控制器的管理页面,实现对bios的访问。但是,由于webui页面极不稳定,常出现webui无法正常登录或升级bios失败的现象;并且,通过webui页面,刷新升级bios的步骤繁琐、工作量大、稳定性差,不利于技术人员维护工作的进行,导致工作效率缓慢。
因此,如何快速刷新升级bios,提高bios刷新升级的稳定性和技术人员的工作效率,是本领域技术人员需要解决的问题。
技术实现要素:
本发明的目的在于提供一种升级bios的方法、装置、系统、设备及计算机可读存储介质,以实现快速刷新升级bios,提高bios刷新升级的稳定性和技术人员的工作效率。
为实现上述目的,本发明实施例提供了如下技术方案:
一种升级bios的方法,包括:
接收用户输入的登录服务器的基板管理控制器的管理系统的指令;
根据所述指令登录所述管理系统,并建立与所述服务器的数据传输通道;
通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器,以使所述服务器按照所述bios升级文件刷新目标bios;
获取所述目标bios的刷新进度并显示,当所述目标bios刷新完成时,通过预设的重启指令控制所述服务器重启,完成所述目标bios的升级。
其中,所述接收用户输入的登录服务器的基板管理控制器的管理系统的指令,包括:
接收用户通过curl工具输入的登录服务器的基板管理控制器的管理系统的指令。
其中,所述通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器之前,还包括:
将所述目标bios的配置参数进行保留,所述配置参数为升级所述目标bios时,无需更改的参数。
其中,所述通过预设的重启指令控制所述服务器重启,包括:
通过采用ipmitool工具预设的重启指令控制所述服务器重启。
其中,所述通过预设的重启指令控制所述服务器重启之前,还包括:
将所述bios升级文件的版本号传输至所述服务器,并设置给所述目标bios。
其中,所述获取所述目标bios的刷新进度并显示,当所述目标bios刷新完成时,通过预设的重启指令控制所述服务器重启,完成所述目标bios的升级之后,还包括:
接收用户通过ipmitool工具输入的获取升级后的目标bios的版本号的指令;
根据所述指令获取所述升级后的目标bios的版本号;
判断所述升级后的目标bios的版本号与所述bios升级文件的版本号是否相同;
若否,则执行所述通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器,以使所述服务器按照所述bios升级文件刷新目标bios的步骤。
一种升级bios的装置,包括:
接收模块,用于接收用户输入的登录服务器的基板管理控制器的管理系统的指令;
登录模块,用于根据所述指令登录所述管理系统,并建立与所述服务器的数据传输通道;
传输模块,用于通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器,以使所述服务器按照所述bios升级文件刷新目标bios;
执行模块,用于获取所述目标bios的刷新进度并显示,当所述目标bios刷新完成时,通过预设的重启指令控制所述服务器重启,完成所述目标bios的升级。
一种升级bios的系统,包括
客户端,用于接收用户输入的登录服务器的基板管理控制器的管理系统的指令;根据所述指令登录所述管理系统,并建立与所述服务器的数据传输通道;通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器;获取所述目标bios的刷新进度并显示,当所述目标bios刷新完成时,通过预设的重启指令控制所述服务器重启,完成所述目标bios的升级;
服务器,用于通过所述数据传输通道接收所述bios升级文件,并按照所述bios升级文件刷新所述目标bios;接收所述重启指令并进行重启操作。
一种升级bios的设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任意一项所述的升级bios的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的升级bios的方法的步骤。
通过以上方案可知,本发明实施例提供的一种升级bios的方法,包括:接收用户输入的登录服务器的基板管理控制器的管理系统的指令;根据所述指令登录所述管理系统,并建立与所述服务器的数据传输通道;通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器,以使所述服务器按照所述bios升级文件刷新目标bios;获取所述目标bios的刷新进度并显示,当所述目标bios刷新完成时,通过预设的重启指令控制所述服务器重启,完成所述目标bios的升级。
可见,所述方法通过登录服务器的基板管理控制器的管理系统,并建立与所述服务器的数据传输通道;通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器,以使所述服务器按照所述bios升级文件刷新目标bios,当目标bios刷新完成时,通过预设的重启指令控制所述服务器重启,由此便完成了所述目标bios的升级。通过上述方法升级bios,减少了操作步骤和工作量,有利于技术人员进行后期维护工作,提高了工作效率,也提高了bios刷新升级的稳定性,节约了时间和成本。
相应地,本发明实施例提供的一种升级bios的装置、系统、设备及计算机可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种升级bios的方法流程图;
图2为本发明实施例公开的另一种升级bios的方法流程图;
图3为本发明实施例公开的一种升级bios的装置示意图;
图4为本发明实施例公开的一种升级bios的系统示意图;
图5为本发明实施例公开的一种升级bios的设备示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种升级bios的方法、装置、系统、设备及计算机可读存储介质,以实现快速刷新升级bios,提高bios刷新升级的稳定性和技术人员的工作效率。
参见图1,本发明实施例提供的一种升级bios的方法,包括:
s101、接收用户输入的登录服务器的基板管理控制器的管理系统的指令;
s102、根据所述指令登录所述管理系统,并建立与所述服务器的数据传输通道;
在本实施例中,通过用户输入的登录服务器的基板管理控制器的管理系统的指令来登录基板管理控制器的管理系统,从而对bios进行管理和控制。
需要说明的是,所述数据传输通道包括对服务器的websession,实现与服务器的数据交互和时间等的记录。
s103、通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器,以使所述服务器按照所述bios升级文件刷新目标bios;
具体的,在升级目标bios时,需要bios升级文件,故需要将预先存储的bios升级文件传输至所述服务器,以使所述服务器按照所述bios升级文件刷新目标bios。
s104、获取所述目标bios的刷新进度并显示,当所述目标bios刷新完成时,通过预设的重启指令控制所述服务器重启,完成所述目标bios的升级。
具体的,在服务器进行目标bios的刷新升级过程中,可以获取目标bios的刷新进度并显示,通常以进度条的方式进行显示,当然,也可以采用其他方式,故本实施例在此并不具体限定。
当目标bios刷新完成时,通过预设的重启指令控制服务器重启,以实现目标bios的升级。
可见,本实施例提供的一种升级bios的方法,所述方法通过登录服务器的基板管理控制器的管理系统,并建立与所述服务器的数据传输通道;通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器,以使所述服务器按照所述bios升级文件刷新目标bios,当目标bios刷新完成时,通过预设的重启指令控制所述服务器重启,由此便完成了所述目标bios的升级。通过上述方法升级bios,减少了操作步骤和工作量,有利于技术人员进行后期维护工作,提高了工作效率,也提高了bios刷新升级的稳定性,节约了时间和成本。
本发明实施例公开了另一种升级bios的方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
参见图2,本发明实施例提供的另一种升级bios的方法,包括:
s201、接收用户输入的登录服务器的基板管理控制器的管理系统的指令;
s202、根据指令登录管理系统,并建立与服务器的数据传输通道;
s203、将目标bios的配置参数进行保留,配置参数为升级目标bios时,无需更改的参数;
s204、通过数据传输通道将预先存储的bios升级文件传输至服务器,以使服务器按照bios升级文件刷新目标bios;
s205、获取目标bios的刷新进度并显示,当目标bios刷新完成时,通过预设的重启指令控制服务器重启,完成目标bios的升级。
在本实施例中,对于需要升级的目标bios,存在一些需要保留的配置参数,故在传输bios升级文件之前,首先需要将目标bios的、无需更改的配置参数进行保留。其中,所述配置参数包括:bios配置选项的开或关等。例如:bios的数据传输配置选项需要设置为常开状态,故该选项需要保留为开,此即为需要保留的配置参数。
可见,本实施例提供的另一种升级bios的方法,所述方法通过登录服务器的基板管理控制器的管理系统,并建立与所述服务器的数据传输通道;将目标bios的配置参数进行保留,配置参数为升级目标bios时,无需更改的参数;通过数据传输通道将预先存储的bios升级文件传输至所述服务器,以使所述服务器按照所述bios升级文件刷新目标bios,当目标bios刷新完成时,通过预设的重启指令控制所述服务器重启,由此便完成了所述目标bios的升级。通过上述方法升级bios,减少了操作步骤和工作量,有利于技术人员进行后期维护工作,提高了工作效率,也提高了bios刷新升级的稳定性,节约了时间和成本。
基于上述任意实施例,需要说明的是,所述接收用户输入的登录服务器的基板管理控制器的管理系统的指令,包括:
接收用户通过curl工具输入的登录服务器的基板管理控制器的管理系统的指令。
具体的,用户可以采用curl工具进行登录指令的输入,模拟登录基板管理控制器的管理系统。其中,curl是利用url语法在命令行下工作的文件传输工具,支持文件上传和下载,是综合传输工具,能够进行网页模拟登录。
基于上述任意实施例,需要说明的是,所述通过预设的重启指令控制所述服务器重启,包括:
通过采用ipmitool工具预设的重启指令控制所述服务器重启。
具体的,ipmitool工具可以在linux系统中以命令行方式管理设备,支持ipmi1.5规范(最新的规范为ipmi2.0),可实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。
基于上述任意实施例,需要说明的是,所述通过预设的重启指令控制所述服务器重启之前,还包括:
将所述bios升级文件的版本号传输至所述服务器,并设置给所述目标bios。
具体的,在目标bios刷新完成时,需要将当前刷新的bios版本号设置给目标bios,故需要将bios升级文件的版本号传输至服务器,以使目标bios具有与bios升级文件相同的版本号。
基于上述任意实施例,需要说明的是,所述获取所述目标bios的刷新进度并显示,当所述目标bios刷新完成时,通过预设的重启指令控制所述服务器重启,完成所述目标bios的升级之后,还包括:
接收用户通过ipmitool工具输入的获取升级后的目标bios的版本号的指令;
根据所述指令获取所述升级后的目标bios的版本号;
判断所述升级后的目标bios的版本号与所述bios升级文件的版本号是否相同;
若否,则执行所述通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器,以使所述服务器按照所述bios升级文件刷新目标bios的步骤。
具体的,在完成目标bios的刷新升级后,还需要确定目标bios是否刷新升级成功。具体过程为:用户采用ipmitool工具输入获取升级后的目标bios的版本号的指令;根据该指令之间从服务器获取当前目标bios的版本号,当获取到的bios版本号与bios升级文件的版本号相同时,则表明目标bios升级成功;当获取到的bios版本号与bios升级文件的版本号不相同时,则表明目标bios升级失败,则需要重新升级目标bios,故执行通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器,以使所述服务器按照所述bios升级文件刷新目标bios的步骤,以实现目标bios的再次升级。
基于上述任意实施例,需要说明的是,可以与多台服务器建立通信链路,采用本说明书提供的升级bios的方法,对多台服务器的bios进行升级刷新。
基于上述任意实施例,需要说明的是,采用本说明书提供的升级bios的方法,可以编写如下脚本:
通过如下脚本实现登录基板管理控制器的管理系统:
res=`curl-xpost-d"username=$username&password=$password""http://$ip/api/session"-c./cookie`;
通过如下脚本建立websession程序:
cookies=`echo$res|sed's/}//g'|sed's/"//g'|sed's/://g'|awk-f'csrftoken''{print$2}'|sed's///g'`;
通过如下脚本上传bios升级文件:
curl-f"fwimage=@$binfile"-h"x-csrftoken:$cookies""http://$ip/api/maintenance/bios/firmware"-b./cookie>>$logname;
通过如下脚本实现对bios升级时配置参数的保留:
curl-xpost-h"content-type:application/json"-h"x-csrftoken:$cookies"-d'{"action":"'$preserve_config'"}'"http://$ip/api/maintenance/bios/configuration"-b./cookie>>$logname;
通过如下脚本获取bios的刷新进度:
res=`curl-xget-h"x-csrftoken:$cookies""http://$ip/api/maintenance/bios/status"-b./cookie`echo$res>>$logname,progress=`echo$res|sed's/://g'|awk-f"\"progress\""'{print$2}'|awk-f"\""'{print$2}'`。
下面对本发明实施例提供的一种升级bios的装置进行介绍,下文描述的一种升级bios的装置与上文描述的一种升级bios的方法可以相互参照。
参见图3,本发明实施例提供的一种升级bios的装置,包括:
接收模块301,用于接收用户输入的登录服务器的基板管理控制器的管理系统的指令;
登录模块302,用于根据所述指令登录所述管理系统,并建立与所述服务器的数据传输通道;
传输模块303,用于通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器,以使所述服务器按照所述bios升级文件刷新目标bios;
执行模块304,用于获取所述目标bios的刷新进度并显示,当所述目标bios刷新完成时,通过预设的重启指令控制所述服务器重启,完成所述目标bios的升级。
其中,所述接收模块具体用于:
接收用户通过curl工具输入的登录服务器的基板管理控制器的管理系统的指令。
其中,还包括:
参数保留模块,用于将所述目标bios的配置参数进行保留,所述配置参数为升级所述目标bios时,无需更改的参数。
其中,所述执行模块具体用于:
通过采用ipmitool工具预设的重启指令控制所述服务器重启。
其中,所述执行模块还用于:
将所述bios升级文件的版本号传输至所述服务器,并设置给所述目标bios。
其中,还包括:校验模块,所述校验模块包括:
接收单元,用于接收用户通过ipmitool工具输入的获取升级后的目标bios的版本号的指令;
获取单元,用于根据所述指令获取所述升级后的目标bios的版本号;
判断单元,用于判断所述升级后的目标bios的版本号与所述bios升级文件的版本号是否相同;
执行单元,当所述升级后的目标bios的版本号与所述bios升级文件的版本号不相同时,通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器,以使所述服务器按照所述bios升级文件刷新目标bios。
下面对本发明实施例提供的一种升级bios的系统进行介绍,下文描述的一种升级bios的系统与上文描述的一种升级bios的方法及装置可以相互参照。
参见图4,本发明实施例提供的一种升级bios的系统,包括:
客户端401,用于接收用户输入的登录服务器的基板管理控制器的管理系统的指令;根据所述指令登录所述管理系统,并建立与所述服务器的数据传输通道;通过所述数据传输通道将预先存储的bios升级文件传输至所述服务器;获取所述目标bios的刷新进度并显示,当所述目标bios刷新完成时,通过预设的重启指令控制所述服务器重启,完成所述目标bios的升级;
服务器402,用于通过所述数据传输通道接收所述bios升级文件,并按照所述bios升级文件刷新所述目标bios;接收所述重启指令并进行重启操作。
基于上述任意实施例,需要说明的是,可以建立一台客户端对多台服务器的系统,其中,可以利用交换机实现数据交互。例如:某升级bios的系统包括:一台客户端、一台交换机和五台服务器,客户端与交换机相连,交换机与五台服务器均相连,由此实现一对多的升级系统。在进行bios升级时,客户端根据服务器的标识信息区分不同服务器,例如:ip地址等;进而采用本说明书提供的升级bios的方法分别升级不同服务器的bios。
下面对本发明实施例提供的一种升级bios的设备进行介绍,下文描述的一种升级bios的设备与上文描述的一种升级bios的方法、装置及系统可以相互参照。
参见图5,本发明实施例提供的一种升级bios的设备,包括:
存储器501,用于存储计算机程序;
处理器502,用于执行所述计算机程序时实现上述任意实施例所述的升级bios的方法的步骤。
下面对本发明实施例提供的一种计算机可读存储介质进行介绍,下文描述的一种计算机可读存储介质与上文描述的一种升级bios的方法、装置、系统及设备可以相互参照。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意实施例所述的升级bios的方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。