CN117290321A - 日志文件存储方法及装置、存储介质及电子装置 - Google Patents
日志文件存储方法及装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN117290321A CN117290321A CN202311244921.8A CN202311244921A CN117290321A CN 117290321 A CN117290321 A CN 117290321A CN 202311244921 A CN202311244921 A CN 202311244921A CN 117290321 A CN117290321 A CN 117290321A
- Authority
- CN
- China
- Prior art keywords
- host
- log
- logs
- file
- preset storage
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 230000005540 biological transmission Effects 0.000 claims description 95
- 238000012546 transfer Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 claims description 8
- 239000000758 substrate Substances 0.000 claims 1
- 230000009977 dual effect Effects 0.000 description 11
- 238000012423 maintenance Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000002159 abnormal effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种日志文件存储方法及装置、存储介质及电子装置,其中,该方法包括:在服务器的主机系统启动的情况下,将主机系统所产生的主机日志存储到主机日志目录下,其中,主机日志目录为指定的、用于存储主机日志的目录;在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统将一组主机日志经由预设存储部件传输给目标操作系统,其中,预设存储部件用于在主机系统和目标操作系统之间传输的主机日志,目标操作系统是运行在服务器的基板管理控制器BMC芯片的至少一个处理器核心上的操作系统;通过目标操作系统将一组主机日志写入到外接存储设备,其中,外接存储设备是服务器所外接的存储设备。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种日志文件存储方法及装置、存储介质及电子装置。
背景技术
随着云计算、大数据、移动互联网、人工智能等技术的发展,对于服务器的处理能力、可靠性、可扩展性等提出了更高的需求。服务器设备类型越来越丰富,服务器主机系统启动和使用过程中会生成多种主机日志,这些主机日志对于主机故障定位也越来越重要。
目前,运维人员查看主机日志可以通过登录服务器主机进行一一查找,然而,在服务器主机宕机、启动失败等异常情况下,无法登陆主机获取主机日志,无法定位分析引发主机故障的原因,极大限制了故障查找定位的效率。由此可见,相关技术中的日志文件存储方法,存在主机异常时无法获取主机日志的问题。
发明内容
本申请实施例提供了一种日志文件存储方法及装置、存储介质及电子装置,以至少解决相关技术中的日志文件存储方法存在主机异常时无法获取主机日志的问题。
根据本申请的一个实施例,提供了一种日志文件存储方法,包括:在服务器的主机系统启动的情况下,将所述主机系统所产生的主机日志存储到主机日志目录下,其中,所述主机日志目录为指定的、用于存储主机日志的目录;在所述主机日志目录中存在新增的一组主机日志的情况下,通过所述主机系统将所述一组主机日志经由预设存储部件传输给目标操作系统,其中,所述预设存储部件用于在所述主机系统和所述目标操作系统之间传输主机日志,所述目标操作系统是运行在所述服务器的基板管理控制器BMC芯片的至少一个处理器核心上的操作系统;通过所述目标操作系统将所述一组主机日志写入到外接存储设备,其中,所述外接存储设备是所述服务器所外接的存储设备。
根据本申请的又一个实施例,提供了一种日志文件存储装置,包括:存储单元,用于在服务器的主机系统启动的情况下,将所述主机系统所产生的主机日志存储到主机日志目录下,其中,所述主机日志目录为指定的、用于存储主机日志的目录;传输单元,用于在所述主机日志目录中存在新增的一组主机日志的情况下,通过所述主机系统将所述一组主机日志经由预设存储部件传输给目标操作系统,其中,所述预设存储部件用于在所述主机系统和所述目标操作系统之间传输主机日志,所述目标操作系统是运行在所述服务器的基板管理控制器BMC芯片的至少一个处理器核心上的操作系统;写入单元,用于通过所述目标操作系统将所述一组主机日志写入到外接存储设备,其中,所述外接存储设备是所述服务器所外接的存储设备。
根据本申请的又一个实施例,还提供了一种服务器,包括:处理部件,基板管理控制器BMC芯片,预设存储部件,其中,所述处理部件上运行有主机系统,所述BMC芯片的至少一个处理器核心上运行有目标操作系统,其中,所述主机系统,用于在所述主机系统启动的情况下,将所述主机系统所产生的主机日志存储到主机日志目录下,其中,所述主机日志目录为指定的、用于存储主机日志的目录,在所述主机日志目录中存在新增的一组主机日志的情况下,将所述一组主机日志经由所述预设存储部件传输给所述目标操作系统,其中,所述预设存储部件用于在所述主机系统和所述目标操作系统之间传输主机日志;所述目标操作系统,用于将所述一组主机日志写入到外接存储设备,其中,所述外接存储设备是所述服务器所外接的存储设备。
根据本申请的又一个实施例,还提供了一种基板管理控制器BMC芯片,包括:运行有目标操作系统的至少一个处理器核心,其中,所述目标操作系统,用于接收所述BMC芯片所在的服务器的主机系统经由预设存储部件传输的一组主机日志,并将所述一组主机日志文件写入到外接存储设备中;其中,所述主机系统所产生的主机日志存储在主机日志目录下,所述主机日志目录为指定的、用于存储主机日志的目录,所述一组主机日志是所述主机日志目录中新增的主机日志,所述预设存储部件用于在所述主机系统和所述目标操作系统之间传输主机日志,所述外接存储设备是所述服务器所外接的存储设备。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请实施例,采用服务器主机系统通过预设存储部件将主机日志传输到运行在BMC芯片的至少一个处理器核心上的目标操作系统、目标操作系统将接收到的主机日志存储到外接存储设备的方式,通过在服务器的主机系统启动的情况下,将主机系统所产生的主机日志存储到主机日志目录下,其中,主机日志目录为指定的、用于存储主机日志的目录;在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统将一组主机日志经由预设存储部件传输给目标操作系统,其中,预设存储部件用于在主机系统和目标操作系统之间传输的主机日志,目标操作系统是运行在服务器的基板管理控制器BMC芯片的至少一个处理器核心上的操作系统;通过目标操作系统将一组主机日志写入到外接存储设备,其中,外接存储设备是服务器所外接的存储设备,对于主机系统,可以将其在启动和使用过程中产生的主机日志先存储到预设存储部件中,通过运行在BMC芯片的至少一个处理器核心上的操作系统来读取存储在预设存储部件中的主机日志并将读取到的主机日志存储到服务器外接的存储设备中,在主机异常时,可以获取存储在外接存储设备中的主机日志,达到主机异常情况下主机日志获取的成功率的技术效果,进而解决了相关技术中的日志文件存储方法存在主机异常时无法获取主机日志的问题。
附图说明
图1是根据本申请实施例的一种日志文件存储方法的服务器的硬件结构框图;
图2是根据本申请实施例的一种日志文件存储方法的流程示意图;
图3是根据本申请实施例的一种指定存储部件的示意图;
图4是根据本申请实施例的一种可选的异构双系统的启动流程的示意图;
图5是根据本申请实施例的另一种日志文件存储方法的流程示意图;
图6是根据本申请实施例的又一种日志文件存储方法的流程示意图;
图7是根据本申请实施例的又一种日志文件存储方法的流程示意图;
图8是根据本申请实施例的又一种日志文件存储方法的流程示意图;
图9是根据本申请实施例的又一种日志文件存储方法的流程示意图;
图10是根据本申请实施例的一种日志文件存储装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例所提供的方法实施例可以在服务器、计算机终端、设备终端或者类似的运算装置中执行。以运行在服务器上为例,图1是根据本申请实施例的一种日志文件存储方法的硬件环境示意图。如图1所示,服务器可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,在一个示例性实施例中,上述服务器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器的结构造成限定。例如,服务器还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的日志文件存储方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个NIC(NetworkInterface Controller,网络适配器),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为RF(Radio Frequency,射频)模块,其用于通过无线方式与互联网进行通讯。
随着云计算、大数据、移动互联网、人工智能的发展,这些领域要求具有处理能力强、可靠性高、可扩展性好的服务器。服务器设备类型越来越丰富,对服务器日志的重视也越来越高。在服务器的主机系统启动和使用的过程中的各种服务会生成多种主机日志(日志文件),主机日志可以用于记录服务器主机各种操作产生的日志,主机日志信息可以用于指示开机自检信息、用户成功登陆时间和相应的IP(Internet Protocol,网际互连协议)、登陆失败的用户时间以及远程IP、安全日志、用户和用户组变化情况、用户登陆认证情况、系统和服务错误信息、记录用户登陆注销以及系统启动停机事件、当前登陆的每个用户的信息等。通过分析服务器主机日志,运维人员可以了解服务器主机的运行情况,及时发现和解决问题,确保服务器的稳定和安全。
目前,运维人员查看主机日志时需要登录服务器主机进行一一查找,效率低下并且会占用主机资源。在服务器主机宕机、启动失败等情况下,无法登陆主机获取到主机日志,无法定位分析引发服务器主机故障的原因,极大限制了故障查找定位的效率。为了解决上述技术问题,可以通过BMC(Baseboard Management Controller,基板管理控制器)与服务器操作系统连接,将日志文件发送给BMC,然而,通过BMC存储主机日志会增加BMC负载和工作量,对BMC业务有一定的影响。
为了至少部分解决上述问题,本实施例中提供了一种服务器主机日志存储方案,在服务器的主机系统启动的情况下,对于主机系统,可以将其在启动和使用过程中产生的主机日志先存储到预设存储部件中,通过运行在BMC芯片的至少一个处理器核心上的操作系统来读取存储在预设存储部件中的主机日志并将读取到的主机日志存储到服务器外接的存储设备中,在主机异常时,可以获取存储在外接存储设备中的主机日志,从而提高主机日志获取的成功率,进而解决上述技术问题。
根据本申请实施例的一个方面,提供了一种日志文件存储方法,应用于上述服务器,图2是根据本申请实施例的一种日志文件存储方法的流程示意图,如图2所示,该流程包括如下步骤:
步骤S202,在服务器的主机系统启动的情况下,将主机系统所产生的主机日志存储到主机日志目录下。
本实施例中的日志文件存储方法可以应用到对服务器的主机系统启动之后在各种服务中所产生的主机日志进行存储的场景,存储的主机日志可以在服务器主机异常、或者其他有查看主机日志的需求时被获取到。这里,服务器主机系统可以是指运行在服务器主机上运行的操作系统。服务器主机可以是指用于提供服务的计算机,通常具有高性能的硬件配置和稳定可靠的运行环境,用于承载大量用户访问和处理复杂的计算任务。主机系统可以但不限于是Windows系统、Linux系统、Unix系统、类Unix操作系统等。本实施例中对于服务器主机和主机系统的类型不做限定。
在服务器的主机系统启动之后,主机系统可以运行多种服务,并通过主机日志记录提供服务相关信息。对于主机系统所产生的主机日志,可以首先将其保存在主机日志目录下,主机日志目录为指定的、用于存储主机日志的目录(例如,/var)。主机系统启动和使用过程中会产生多种主机日志,可以包括但不限于:安全认证信息,定时任务信息,内核日志,守护进程日志,用户等级信息,syslog(系统日志)服务信息,本地使用预留服务信息,邮件信息等。
这里,/var目录可以是一个存放可变数据的目录,其中可以包含许多系统和应用程序所需的文件和目录。这些文件和目录的内容会在系统运行时不断变化,因此被放在/var目录下。可选地,/var子目录可以包括但不限于/var/log(存放系统日志文件)、/var/cache(存放应用程序缓存文件)、/var/spool(存放邮件、打印机、任务等的队列文件)、/var/run(存放系统运行时生成的临时运行文件)等。
在一个示例性实施例中,所需记录到主机日志目录中的主机日志的类型可以有一种或多种,可以根据需要进行灵活配置。可选地,存储到主机日志目录下的主机日志可以包括但不限于以下至少之一的主机日志:安全认证信息,定时任务信息,内核日志,守护进程日志,用户等级信息,系统日志服务信息,本地使用预留服务信息,邮件信息。
例如,主机系统所产生的日志信息包括以下至少之一:开机自检信息,用户成功登陆时间和相应IP,登陆失败的用户时间以及远程IP,安全日志,用户和用户组变化情况,用户登陆认证情况,系统和服务错误信息,记录用户登陆注销以及系统启动停机事件,当前登陆的每个用户的信息。
步骤S204,在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统将一组主机日志经由预设存储部件传输给目标操作系统。
主机日志目录下的所有主机日志均可以周期性地、或者定时经由预设存储部件传输给目标操作系统,为了减少所需传输的数据量,每次可以仅传输主机日志目录中新增的一组主机日志,这里,新增的一组主机日志为相对于上一次经由预设存储部件向目标操作系统传输主机日志,主机日志目录中新增加的主机日志。
在主机日志目录中存在新增的一组主机日志的情况下,主机系统可以将新增的一组主机日志经由预设存储部件传输给目标操作系统,存在新增的一组主机日志可以是基于主机日志的日志标识(例如,日志编号)确定的(例如,日志标识依次递增,基于记录的上一次传输的最新主机日志的日志标识与当前最新的主机日志的日志标识是否相等确定是否存在新增的主机日志),也可以基于比对上一次传输的主机日志时所有已传输的主机日志与主机日志目录中当前的主机日志确定的。
预设存储部件可以用于在主机系统和目标操作系统之间传输主机日志,其可以作为主机系统和目标操作系统之间传输主机日志的存储通道,其类型可以根据需要进行设定。可选地,预设存储部件可以为以下至少之一:VGA(Video Graphics Array,视频图形阵列)显存,共享内存,通过USB(Universal Serial Bus,通用串行总线)连接的存储部件,在预设存储部件中,主机系统和目标操作系统之间传输的主机日志被存储在指定存储部件的存储空间内,例如,存储在指定存储部件最后的注定大小的存储空间内。而目标操作系统可以是运行在服务器的BMC芯片的至少一个处理器核心上的操作系统,BMC芯片可以监控服务器主机,例如,监控主机系统的运行状态。
这里,视频图形阵列具有分辨率高、显示速率快、颜色丰富等优点,VGA接口不但是CRT(Cathode Ray Tube,阴极射线管)显示设备的标准接口,同样也是LCD(Liquid CrystalDisplay,液晶显示器)液晶显示设备的标准接口,具有广泛的应用范围,VGA显存一般用作主机图像的输出,可以将VGA显存分出一部分作为主机系统和RTOS系统交互数据的共享存储。VGA显存对主机是可见的,服务器主机系统通过BAR0(VGA显存中的寄存器)进行读写可以使用整段VGA显存,服务器主机系统和目标操作系统之间的交互数据可以被存储在VGA显存最后的指定大小的存储空间内,如图3所示,可以将VGA显存最后2MB空间分配给日志数据使用。
共享内存是一种用于多个进程或线程之间共享数据的机制,是指在内存中创建一个可被多个进程或线程同时访问的共享区域,不同的进程或线程可以通过读写共享内存来实现数据的共享和通信;USB是一种串口总线标准,也是一种输入输出接口的技术规范,通过USB连接的存储部件可以包括但不限于外部硬盘、U盘等。
BMC可以是单操作系统架构的,也可以是多操作系统架构的,多操作系统可以运行在BMC芯片的不同处理器核心上,一个操作系统可以运行在至少一个处理器核心上,本实施例中对此不做限定。目标操作系统可以是用于进行主机日志收集和存储的实时操作系统,例如,RTOS(Real-Time Operating System,实时操作系统)系统,也可以是其他类型的操作系统,本实施例中对此不做限定。以RTOS为例,RTOS可以访问VGA显存,从而获得日志数据,进行日志记录。
可选地,BMC芯片可以是双核CPU(Central Processing Unit,中央处理器),即,具有两个处理器核心,不同的核心上可以运行不同的操作系统,其中一个运行的是目标操作系统(例如,RTOS系统),另一个是其他的操作系统(例如,Linux系统),即,BMC芯片上运行的是异构双系统,其中,目标操作系统启动之后,只运行主机日志收集存储程序,另一个操作系统可以运行BMC业务程序。这里,BMC芯片可以是ARM(Advanced RISC Machine,高级精简指令集计算机)架构的双核CPU。
以目标操作系统为RTOS系统、另一个操作系统为Linux系统为例,BMC芯片的核心1上运行Linux系统,在核心0上运行RTOS系统,其中Linux系统启动之后运行最基本的BMC业务程序(比如,传感器监测、告警、电源管理等程序),而RTOS系统启动之后只运行主机日志收集存储程序。如图4所示,异构双系统的启动流程可以包括以下的步骤:
步骤1,上电唤醒CPU0。
步骤2,CPU0运行BootRom(BootRead OnlyMemory,引导只读存储器)。
步骤3,BootRom加载SPL(SecondProgram Loader,二级程序加载器),以通过SPL启动RTOS系统。
这里,SPL执行两个功能:其中之一为启动RTOS系统。可以通过SPL进行操作系统的启动引导,SPL属于uboot(Universal Bootloader,通用引导程序)第一阶段执行的代码,可以搬移uboot第二阶段代码到内存中运行,主要负责装载操作系统到RAM中的程序代码。这里,uboot是一种用于嵌入式系统的引导加载程序,主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机系统结构,例如,PPC(PowerPersonal Computer,功率个人计算机)、ARM、AVR32、MIPS(Microprocessorwithout InterlockedPipeline Stages,无互锁流水线级别的微处理器)、x86(IntelArchitecture,32-bit,32位英特尔体系结构)、68k(Motorola68000,摩托罗拉68000)、Nios与MicroBlaze等。
步骤4,SPL接着唤醒CPU1,引导uboot启动,这里,SPL执行的另一个功能为唤醒CPU1,引导uboot启动。
步骤5,uboot阶段加载Linux内核,并启动BMC业务程序。
步骤S206,通过目标操作系统将一组主机日志写入到外接存储设备,其中,外接存储设备是服务器所外接的存储设备。
在获取到一组主机日志之后,目标操作系统可以将一组主机日志写入到服务器所外接的存储设备中,即,外接存储设备,这里的外接存储设备为连接在服务器上的存储设备,外接存储设备的类型可以是TF卡(Trans-flash Card,即,Micro SD Card,微型SD卡)、SD卡(Secure Digital Memory Card,数码存储卡)、FLASH(flash memory,快闪存储卡)等。
例如,主机可以通过VGA显存、USB、KCS(Kubernetes Container Service,一种容器服务)等通道将日志数据发送出去,以VGA显存为例,RTOS系统定时读取VGA显存,查看到文件更新之后,可以将日志文件存储到TF卡、SD卡、FLASH等存储设备上,实现了主机日志的存储和备份。
通过上述步骤,在服务器的主机系统启动的情况下,将主机系统所产生的主机日志存储到主机日志目录下,其中,主机日志目录为指定的、用于存储主机日志的目录;在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统将一组主机日志经由预设存储部件传输给目标操作系统,其中,预设存储部件用于在主机系统和目标操作系统之间传输主机日志,目标操作系统是运行在服务器的基板管理控制器BMC芯片的至少一个处理器核心上的操作系统;通过目标操作系统将一组主机日志写入到外接存储设备,其中,外接存储设备是服务器所外接的存储设备,解决了相关技术中的日志文件存储方法存在主机异常时无法获取主机日志的问题,提高了主机日志获取的成功率。
在一个示例性实施例中,在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统将一组主机日志经由预设存储部件传输给目标操作系统,包括:
S11,在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统将一组主机日志写入到预设存储部件中;
S12,通过目标操作系统读取预设存储部件中存储的一组主机日志,以将一组主机日志传输给目标操作系统。
在本实施例中,当确定主机日志目录中存在新增的一组主机日志时,主机系统可以首先将一组主机日志写入到预设存储部件中,写入可以是定时写入的,也可以是由事件触发写入的,还可以是其他的写入时机,本实施例中对此不做限定。例如,当/var下有新增的主机日志时,可以首先将新增的主机日志写入到VGA显存中。这里,一组主机日志为主机日志目录中未向预设存储部件传输过的主机日志。
对于写入到预设存储部件的一组主机日志,可以由预设存储部件主动将其推动给目标操作系统。为了提高数据获取的合理性,可以由目标操作系统主动读取预设存储部件中存储的一组主机日志,从而实现将一组主机日志传输给目标操作系统。
通过本实施例,通过主机系统将待存储的日志文件写入到预设存储部件,并由目标操作系统从预设存储部件中读取待存储的日志文件,可以提高主机日志存储的合理性。
在一个示例性实施例中,在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统将一组主机日志写入到预设存储部件中,包括:
S21,在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统使用一组主机日志按照预设的第一数据结构执行组包操作,得到待传输的第一数据包,其中,第一数据包携带有一组主机日志;
S22,通过主机系统将第一数据包发送到预设存储部件,以将一组主机日志写入到预设存储部件中。
在本实施例中,可以按照预设的数据结构对传输数据进行组包,并采用传输组包得到的数据包的方式实现数据传输。对于主机日志目录中新增的一组主机日志,主机系统可以使用一组主机日志按照预设的第一数据结构执行组包操作,得到待传输的第一数据包,通过上述的组包操作,得到的第一数据包中包含了一组主机日志。在组包完成之后,主机系统可以将得到的第一数据包发送到预设存储部件,从而将一组主机日志写入到预设存储部件中。
可选地,第一数据结构可以是格式化的、用于传输日志文件的结构体,第一数据结构中的不同字段可以用于传输不同的信息,除了主机日志相关的信息以外,还可以包含指示第一数据结构相关位置的信息。上述的组包操作可以是对主机日志目录中的一组主机日志执行的,也可以是首先将主机日志目录中的一组主机日志写入到其他日志文件夹中,再对其他日志文件夹中的一组主机日志执行的,也可以通过其他方式对一组主机日志进行转存之后,再对转存到的位置中的一组主机日志执行的,本实施例中对此不做限定。
例如,VGA显存中写入数据时可以使用格式化的日志文件传输结构(第一数据结构的一种示例),通过依次读取各个待写入的主机日志并为日志文件传输结构的不同字段进行赋值,以实现传输数据的组包。
通过本实施例,主机系统通过预设的数据结构将主机日志写入到预设存储部件中,可以提高传输数据的组织性和可扩展性。
在一个示例性实施例中,在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统使用一组主机日志按照预设的第一数据结构执行组包操作,得到待传输的第一数据包,包括:
S31,在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统使用一组主机日志按照第一数据结构执行以下的组包操作,得到第一数据包:
将预设的文件传输标识赋值给第一数据结构的文件传输标识字段,其中,文件传输标识用于表示第一数据结构的开始位置;
依次读取一组主机日志中的每个主机日志,并使用读取到的每个主机日志为第一数据结构中的一个文件信息组进行赋值,其中,在一个文件信息组中,文件名字段用于存储对应的主机日志的文件名,文件大小字段用于存储对应的主机日志的文件大小信息,文件内容字段用于存储对应的主机日志的文件内容;
在与一组主机日志的最后一个主机日志对应的文件信息组之后添加传输结束标识,得到第一数据包,其中,文件传输结束标识用于标识第一数据结构的结束位置。
在本实施例中,第一数据结构可以包括文件传输标识字段,一个或多个文件信息组以及文件传输结束标识字段,每个文件信息组包括文件名字段、文件大小字段以及文件内容字段。这里,文件传输标识字段用于写入文件传输标识,该标识用于标识一个第一数据结构的开始位置。可选地,所有第一数据结构的文件传输标识字段中所写入的文件传输标识可以预先设定好的,预设的文件传输标识可以有一种或多种。文件名字段用于存储对应的主机日志的文件名,文件大小字段用于存储对应的主机日志的文件大小信息,文件内容字段用于存储对应的主机日志的文件内容。文件传输结束标识字段用于写入文件传输结束标识,该标识用于标识一个第一数据结构的结束位置,可选地,所有第一数据结构的文件传输结束标识字段中所写入的文件传输结束标识可以预先设定好的,预设的文件传输结束标识可以有一种或多种。
在对一组主机日志进行组包的过程中,主机系统可以首先将预设的文件传输标识赋值给第一数据结构的文件传输标识字段;对于一组主机日志,依次读取其中的每个主机日志,并使用读取到的每个主机日志为第一数据结构中的一个文件信息组中的各个字段(文件名字段、文件大小字段以及文件内容字段)进行赋值,这里,每读取一个主机日志,可以分配一个文件信息组,也可以先确定一组主机日志中的主机日志的数量,按照主机日志的数量分配对应数量的文件信息组后再进行信息赋值;最后,在与一组主机日志的最后一个主机日志对应的文件信息组之后添加传输结束标识,从而得到第一数据包。
例如,日志文件数据结构中的具体数据定义可以如表1所示,其中,结构体的第一个位置为文件传输标识,4字节,可以固定为0xaa44aa44;对于每个主机日志,其日志文件名称为16字节;日志大小为4字节;日志内容所占用的字节数可以是固定字节,也可以是可变字节,在末尾添加文件传输结束标识,结束标识占用4字节,其值可以为0xaa55aa55。
表1
名称 | 字节大小 | 备注 |
文件传输标识 | 4 | 0xaa44aa44 |
日志文件名称 | 16 | |
日志文件大小 | 4 |
表1(续)
名称 | 字节大小 | 备注 |
日志文件内容 | XX | |
…… | ||
文件传输结束标识 | 4 | 0xaa55aa55 |
例如,如表2所示,对于传输数据包含多个主机日志的场景,结构体的第一个位置为文件传输标识;多个日志文件可以依次填充结构体中相应位置,例如,日志文件1名称;日志大小;日志内容;日志文件2名称;日志大小;日志内容;...;日志文件N名称;日志大小;日志内容。
表2
名称 | 字节大小 | 备注 |
文件传输标识 | 4 | 0xaa44aa44 |
日志文件1名称 | 16 | |
日志文件1大小 | 4 | |
日志文件1内容 | XX | |
日志文件2名称 | 16 | |
日志文件2大小 | 4 | |
日志文件2内容 | XX | |
…… | ||
日志文件N名称 | 16 | |
日志文件N大小 | 4 | |
日志文件N内容 | XX | |
文件传输结束标识 | 4 | 0xaa55aa55 |
通过本实施例,通过主机系统对文件传输标识字段、文件信息组以及文件传输结束字段进行赋值,可以提高数据组包的便捷性,同时可以提高数据解析的准确性。
在一个示例性实施例中,在将预设的文件传输标识赋值给第一数据结构的文件传输标识字段之后,上述方法还包括:
S41,将最新的文件更新标识赋值给第一数据结构的文件更新标识字段,其中,主机系统在向预设存储部件写入一组主机日志的同时,还向预设存储部件写入最新的文件更新标识。
在本实施例中,为了提高数据备份的准确性,第一数据结构中还包括文件更新标识字段,该字段用于写入文件更新标识,该文件更新标识是主机系统在每向预设存储部件写入一个批次的主机日志时以递增的方式进行更新的、用于标识主机日志目录中是否存在未向预设存储部件传输过的主机日志的标识。这里,文件更新标识是由主机系统维护并更新的。例如,在每次确定/var下存在新增的主机日志需要进行备份时,可以将文件更新标识递增,比如,文件更新标识+1。
在使用一组主机日志按照第一数据结构执行组包操作时,在为文件传输标识字段进行赋值之后,可以将最新的文件更新标识赋值给第一数据结构的文件更新标识字段。通过上述方式,主机系统在向预设存储部件写入一组主机日志的同时,还可以向预设存储部件写入最新的文件更新标识。
例如,在日志文件数据结构中,在文件传输标识字段之后为文件更新标识字段,占4字节,文件更新标识初始为0,每次日志变化则以递增的方式更新该数据,如表3所示。
表3
名称 | 字节大小 | 备注 |
文件传输标识 | 4 | 0xaa44aa44 |
文件更新标识 | 4 | |
日志文件名称 | 16 | |
日志文件大小 | 4 |
表3(续)
名称 | 字节大小 | 备注 |
日志文件内容 | XX | |
…… | ||
文件传输结束标识 | 4 | 0xaa55aa55 |
对应地,如图5所示,传输数据组包的流程可以包括以下步骤:
步骤S502,读取待传输的日志文件;
步骤S504,判断是否已经全部读取完全部待传输的日志文件,若是,则执行步骤S514,否则执行步骤S506;
步骤S506,读取第n个文件;
步骤S508,将文件名赋值给传输数据中文件n名称字段;
步骤S510,将文件大小赋值给传输数据中文件n大小字段;
步骤S512,将文件内容赋值给传输数据中文件n内容字段,返回步骤S502;
步骤S514,为传输数据中的文件传输标识和文件更新标识赋值;
步骤S516,在传输数据中第n个(最后一个)文件内容字段后添加传输结束标识;
步骤S518,传输数据组包完成。
通过本实施例,在传输数据中添加文件更新标识,可以方便各方确定是否存在需要备份的日志文件,提高主机日志备份的准确性。
在一个示例性实施例中,为了方便确定主机日志目录中是否存在新增的主机日志,可以设置第一日志文件夹,第一日志文件夹用于同步存储主机日志目录中的主机日志,而主机日志目录每次向预设存储部件传输的主机日志可以同步存储到第一日志文件夹中。对应地,上述方法还包括:
S51,通过主机系统比较主机日志目录中的主机日志和第一日志文件夹中的主机日志;
S52,在相对于第一日志文件夹中的主机日志,主机日志目录中存在新增的主机日志的情况下,通过主机系统将主机日志目录中所有新增的主机日志,确定为一组主机日志;
S53,通过主机系统将主机日志目录中的一组主机日志同步到第一日志文件夹中。
在本实施例中,为了确定主机日志目录中是否存在新增的主机日志,主机系统可以比较主机日志目录中的主机日志和第一日志文件夹中的主机日志,第一日志文件夹中的主机日志是上次进行主机日志备份时主机系统所产生的主机日志。通过比较主机日志目录中的主机日志和第一日志文件夹中的主机日志,确定两者之间是否存在差异项。
如果相对于第一日志文件夹中的主机日志,主机日志目录中存在新增的主机日志,即,主机日志目录中的主机日志和第一日志文件夹中的主机日志之间存在差异项,可以将主机日志目录中所有新增的主机日志(所有的差异项),确定为一组主机日志,并将新增的一组主机日志同步到第一日志文件夹中,从而方便进行下一次主机日志备份的过程。
例如,服务器的主机系统启动后首先拷贝/var下的日志文件到日志文件夹1(即,第一日志文件夹,以下简称HIST1),发送一次日志文件数据,这里,主机日志记录了服务器主机各种操作产生的日志。此后定时执行命令获取生成的日志信息(即,主机日志),比较/var下的主机日志与HIST1下的主机日志是否有差异,如果有差异,将差异项发送出去。主机系统可以通过VGA显存、USB、KCS等通道将日志数据发送出去。RTOS定时读取VGA显存,查看到文件更新之后,将日志信息存储到存储设备上,实现了主机日志的存储和备份。
通过上述主机日志备份存储的方式,可以提供给运维人员查询查看主机日志的一种新方式,同时不占用主机资源、不影响主机业务执行;主机日志统一汇总存储于一个目录下、无需多处查找拷贝、提高了工作效率,也避免了人为因素导致拷贝过程中日志疏漏缺失的情况。同时主机日志也多了一个备份存储,在出现意外情形(例如,主机掉电、启动失败、宕机等),运维人员依然可以获取主机日志,不至于束手无策,顺利获取到主机日志后可以进行分析诊断定位主机故障原因,提高了系统冗余性和鲁棒性。
通过本实施例,通过设置日志文件夹同步存储每次进行主机日志备份时主机系统所产生的主机日志,可以提高日志备份的效率。
在一个示例性实施例中,为了降低系统负载,主机日志的同步可以是定时执行的,主机系统可以定时将主机日志目录中的主机日志传输到预设存储部件。对应地,通过主机系统比较主机日志目录中的主机日志和第一日志文件夹中的主机日志,包括:
S61,在当前的定时时间到达时,通过主机系统比较主机日志目录中的主机日志和第一日志文件夹中的主机日志,以确定主机日志目录中是否存在新增的主机日志,其中,主机日志目录中新增的主机日志是在上一次定时时间到达之后存储到主机日志目录下的主机日志。
在本实施例中,在当前的定时时间到达时,通过主机系统比较主机日志目录中的主机日志和第一日志文件夹中的主机日志,可以实现确定主机日志目录中是否存在差异项,这里,差异项即为新增的主机日志,是在上一次定时时间到达之后存储到所述主机日志目录下的主机日志,即,主机日志目录中当前的主机日志相对于上一次定时时间到达时主机日志目录中的主机日志新增加的主机日志。
可选地,在通过主机系统比较主机日志目录中的主机日志和第一日志文件夹中的主机日志,确定主机日志目录中不存在新增的主机日志时,可以结束主机日志备份流程,等待下一个定时时间到达。重复执行上述的主机日志备份流程,直到结束条件满足。
例如,主机系统启动之后,首先拷贝/var下日志到HIST1,文件更新标识(初始为0)递增,按照规定格式发送日志文件和文件更新标识到VGA显存。接着,定时比较/var下的日志文件与HIST1中的日志文件是否不同。
通过本实施例,通过定时触发执行主机日志的备份流程,可以降低系统负载,提高资源利用的合理性。
在一个示例性实施例中,通过主机系统将主机日志目录中的一组主机日志同步到第一日志文件夹中,包括:
S71,通过主机系统使用主机日志目录中的一组主机日志更新第一日志文件夹中的主机日志,以将一组主机日志同步到第一日志文件夹中;或者,
S72,通过主机系统使用主机日志目录中全部的主机日志更新第一日志文件夹中的主机日志,以将一组主机日志同步到第一日志文件夹中。
在本实施例中,将主机日志目录中的一组主机日志同步到第一日志文件夹中的方式可以有多种,可以包括但不限于以下至少之一:
将主机日志目录中新增的一组主机日志同步到第一日志文件夹中,以将一组主机日志同步到第一日志文件夹中;
将主机日志目录中全部的主机日志同步到第一日志文件夹中,以覆盖(替换)第一日志文件夹中原有的主机日志,进而实现将一组主机日志同步到第一日志文件夹中。
其中,确定主机日志目录中新增的一组主机日志的方式可以与前述实施例类似,在此不做赘述。
通过本实施例,采用增量同步或者全量同步的方式江主机日志目录下的主机日志同步到日志文件夹中,可以提高主机日志同步的准确性和灵活性。
在一个示例性实施例中,在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统将一组主机日志写入到预设存储部件中,包括:
S81,在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统将主机日志目录中的一组主机日志写入到第二日志文件夹中,其中,第二日志文件夹用于存储主机日志目录中新增的主机日志;
S82,通过主机系统将第二日志文件夹中的一组主机日志发送到预设存储部件,并清空第二日志文件夹中的主机日志。
在本实施例中,为了提高日志备份的准确性,首先将主机日志目录下新增的主机日志先存储到一个日志文件夹(即,第二日志文件夹)中,然后再将该日志文件夹中的主机日志发送到预设存储部件,这里,第二日志文件夹可以用于存储主机日志目录中新增的主机日志。
对于主机日志目录中新增的一组主机日志,主机系统可以将主机日志目录下新增的一组主机日志写入到第二日志文件夹中;然后,将第二日志文件夹中的一组主机日志发送到预设存储部件;在第二日志文件夹中的一组主机日志发送完成之后,清空第二日志文件夹中的主机日志。这里,确定主机日志目录中存在新增的一组主机日志的方式可以与前述实施例中类似,在此不作赘述。
例如,比较/var下的日志文件与HIST1中的日志文件是否不同,有不同则生成差异项到日志文件夹2(即,第二日志文件夹,简称为HIST2),差异项以文件名命名,并将HIST2中的日志文件发送到VGA显存,在日志文件发送完成之后,清空HIST2。
可选地,除了将主机日志目录中的一组主机日志写入到第二日志文件夹中以外,主机系统还可以将新增的主机日志同步到第一日志文件夹中,同步的方式与前述实施例中类似,在此不做赘述。
通过本实施例,通过先将主机日志目录下新增的主机日志发送到一个日志文件夹中,再将日志文件夹中的主机日志发送到指定存储部件中,可以提高主机日志备份存储的效率和准确性。
在一个示例性实施例中,通过主机系统将第二日志文件夹中的一组主机日志发送到预设存储部件,包括:
S91,通过主机系统使用第二日志文件夹中的一组主机日志按照预设的第二数据结构执行组包操作,得到待传输的第二数据包,其中,第二数据包携带有一组主机日志;
S92,通过主机系统将第二数据包发送到预设存储部件,以将一组主机日志写入到预设存储部件中。
与前述实施例中类似的,可以按照预设的数据结构对传输数据进行组包,并采用传输组包得到的数据包的方式实现数据传输。对于第二日志文件夹中的一组主机日志,主机系统可以使用第二日志文件夹中的一组主机日志按照预设的第二数据结构执行组包操作,得到待传输的第二数据包,通过上述的组包操作,得到的第二数据包中包含了一组主机日志。在组包完成之后,主机系统可以将得到的第二数据包发送到预设存储部件,从而将一组主机日志写入到预设存储部件中。
可选地,第二数据结构与第一数据结构可以是相同的,也可以是不同的,使用第二日志文件夹中的一组主机日志按照预设的第二数据结构执行组包操作的方式与前述实施例中类似,将得到的第二数据包发送到预设存储部件与前述将得到的第一数据包发送到预设存储部件的方式类似,在此不做赘述。
对应地,通过主机系统使用第二日志文件夹中的一组主机日志按照预设的第二数据结构执行组包操作,得到待传输的第二数据包,包括:
通过主机系统使用第二日志文件夹中的一组主机日志按照预设的第二数据结构执行以下的组包操作,得到第二数据包:
将预设的文件传输标识赋值给第二数据结构的文件传输标识字段,其中,文件传输标识用于表示第二数据结构的开始位置;
依次读取第二日志文件夹中的一组主机日志中的每个主机日志,并使用读取到的每个主机日志为第二数据结构中的一个文件信息组进行赋值,其中,在一个文件信息组中,文件名字段用于存储对应的主机日志的文件名,文件大小字段用于存储对应的主机日志的文件大小信息,文件内容字段用于存储对应的主机日志的文件内容;
在与第二日志文件夹中的一组主机日志的最后一个主机日志对应的文件信息组之后添加传输结束标识,得到第二数据包,其中,文件传输结束标识用于标识第二数据结构的结束位置。
例如,参见图5所示,主机系统读取待存储的日志文件可以是:主机系统读取HIST2中的日志文件。
通过本实施例,主机系统通过预设的数据结构将主机日志写入到预设存储部件中,可以提高传输数据的组织性和可扩展性。
在一个示例性实施例中,在通过主机系统将第二日志文件夹中的一组主机日志发送到预设存储部件之前,上述方法还包括:
S101,在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统以递增的方式更新文件更新标识,得到更新的文件更新标识。
在本实施例中,为了提高数据备份的准确性,第二数据结构中还包括文件更新标识字段,该字段用于写入文件更新标识,文件更新标识字段和文件更新标识与前述实施例中类似,在此不做赘述。对应地,在通过主机系统将第二日志文件夹中的一组主机日志发送到预设存储部件之前,主机系统可以以递增的方式更新文件更新标识,得到更新的文件更新标识。
对应地,通过主机系统将第二日志文件夹中的一组主机日志发送到预设存储部件,包括:
S102,通过主机系统将文件更新标识和第二日志文件夹中的一组主机日志发送到预设存储部件。
主机系统可以将最新的文件更新标识和第二日志文件夹中的一组主机日志一起发送给预设存储部件,发送的方式与前述实施例中类似,例如,将文件更新标识赋值给第二数据结构的文件更新标识字段。文件更新标识、文件更新标识字段以及赋值的方式与前述实施例中类似,在此不做赘述。
在使用一组主机日志按照第一数据结构执行组包操作时,在为文件传输标识字段进行赋值之后,可以将最新的文件更新标识赋值给第一数据结构的文件更新标识字段。通过上述方式,主机系统在向预设存储部件写入一组主机日志的同时,还可以向预设存储部件写入最新的文件更新标识。
例如,比较/var下的日志文件与HIST1中的日志文件是否不同,有不同则生成差异项到HIST2,差异项以文件名命名,文件更新标识递增,并按照规定格式发送文件更新标识和HIST2中的日志文件到VGA显存,同时使用/var下的日志文件更新HIST1,清空HIST2没有不同则返回等待定时时间到达时继续执行。
如图6所示,主机日志的传输过程可以包括如下步骤:
步骤S602,启动主机系统;
步骤S604,拷贝var下的日志文件到HIST1,将文件更新标识(初始为0)递增;
步骤S606,发送日志文件和文件更新标识到VGA显存;
步骤S608,定时比较var下的日志文件和HIST1中的日志文件是否相同,若是,则等待到达下一个定时时间之后,再次执行步骤S608,否则执行步骤S610;
步骤S610,将文件更新标识递增,将var下的日志文件与HIST1中的日志文件之间的差异项拷贝到HIST2,差异项以文件名命名;
步骤S612,发送文件更新标识和HIST2中的日志文件到VGA显存;
步骤S614,使用var下的日志文件更新HIST1文件,清空HIST2。
通过本实施例,在传输数据中添加文件更新标识,可以方便各方确定是否存在需要备份的日志文件,提高主机日志备份的准确性。
在一个示例性实施例中,通过目标操作系统读取预设存储部件中存储的一组主机日志,包括:
S111,通过目标操作系统比较从预设存储部件读取的文件更新标识和目标操作系统本地存储的文件更新标识;
S112,在从预设存储部件读取的文件更新标识和目标操作系统本地存储的文件更新标识不一致的情况下,通过目标操作系统使用从预设存储部件读取的文件更新标识更新目标操作系统本地存储的文件更新标识;
S113,通过目标操作系统对从预设存储部件读取的数据进行解析,得到一组主机日志。
在本实施例中,在确定指定存储部件中存在待存储的一组主机日志时,目标目标操作系统可以对从预设存储部件读取的数据,对从预设存储部件读取的数据进行解析,从而得到一组主机日志。为了确定指定存储部件中存在待存储的主机日志,目标操作系统可以基于自身保存的文件更新标识和指定存储部件所存储的文件更新标识是否一致,来确定指定存储部件中存在待存储的主机日志。这里,文件更新标识与前述实施例中类似,在此不做赘述。
目标操作系统可以比较从预设存储部件读取的文件更新标识和目标操作系统本地存储的文件更新标识,如果两者一致,确定指定存储部件中不存在待存储的主机日志(即,未备份过的主机日志),如果两者不一致,则确定指定存储部件中存在待存储的主机日志,可以使用从预设存储部件读取的文件更新标识更新目标操作系统本地存储的文件更新标识,并指定对从预设存储部件读取的数据进行解析的操作。
可选地,目标操作系统读取预设存储部件中的文件更新标识、比较从预设存储部件读取的文件更新标识以及执行主机日志的解析操作可以是定时循环执行的,也可以是由主机系统在将待存储的主机日志存储到指定存储部件之后通知目标操作系统,从而触发目标操作系统执行的,本实施例中对此不做限定。
例如,RTOS系统启动之后,其本地存储的文件更新标识默认为0。循环检查VGA显存中的文件更新标识与本地存储的文件更新标识是否一致,如果不一致,则刷新本地存储的文件更新标识,同时读取VGA显存中全部的日志文件,解析读取的日志文件,并写入存储设备中。
如图7所示,RTOS读取日志文件记录(接收存储主机日志)的流程包括以下步骤:
步骤S702,启动系统;
步骤S704,定时读取VGA显存;
步骤S706,检查文件更新标识与上次是否一致(即,检查VGA显存中的文件更新标识与RTOS系统本地存储的文件更新标识是否一致),若是,则执行步骤S704,否则执行步骤S708;
步骤S708,刷新RTOS系统本地存储的文件更新标识;
步骤S710,读取VGA显存中的日志文件;
步骤S712,按照格式解析日志文件,写入存储设备。
通过本实施例,通过比较本地保存的文件更新标识和指定存储部件所存储的文件更新标识确定是否存在待备份的主机日志,可以提高数据同步的准确性,避免系统资源浪费。
在一个示例性实施例中,通过目标操作系统对从预设存储部件读取的数据进行解析,得到一组主机日志,包括:
S121,通过目标操作系统按照预设的第三数据结构的格式对从预设存储部件读取的数据进行解析,得到一组主机日志,其中,第三数据结构为预设存储部件中存储一组主机日志所使用的数据结构。
在本实施例中,预设存储部件中存储一组主机日志所使用的数据结构可以为第三数据结构,第三数据结构与前述的第一数据结构和/或第二数据结构可以是相同的,也可以是不同的。第三数据结构中所包含的字段的类型和含义与前述实施例中类似,在此不做赘述。目标操作系统可以按照预设的第三数据结构的格式对从预设存储部件读取的数据进行解析,例如,按照不同字段的顺序、大小以及含义对从预设存储部件读取的数据进行解析,从而得到一组主机日志。
通过本实施例,指定存储部件通过预设的数据结构保存待备份的主机日志,从而可以由目标操作系统基于上述数据结构的格式对从指定存储部件读取的数据进行解析,可以提高数据传输的准确性。
在一个示例性实施例中,在第三数据结构中,一组主机日志中的每个主机日志分别以一个文件信息组的形式进行存储,在一个文件信息组中,第一长度的文件名字段用于存储对应的主机日志的文件名,第二长度的文件大小字段用于存储对应的主机日志的文件大小信息,第三长度的文件内容字段用于存储对应的主机日志的文件内容。这里,文件信息组的含义与前述实施例中类似,在此不做赘述。可选地,文件名字段的字段长度(即,所占用的字节数)为第一长度,文件大小字段的字段长度为第二长度,文件内容字段的字段长度为第三长度,第一长度、第二长度和第三长度可以是相同的,也可以是不同的,可以是该固定长度,也可以是可变长度(例如,第三长度是通过对应的文件大小信息指示的),本实施例中对此不做限定。
对应地,通过目标操作系统按照第三数据结构的格式对从预设存储部件读取的数据进行解析,得到一组主机日志,包括:
S131,对从预设存储部件读取的数据循环执行以下的解析操作,直到从预设存储部件读取的数据中解析到文件传输结束标识,得到一组主机日志,其中,文件传输结束标识用于标识第三数据结构的结束位置:
从预设存储部件读取的数据中依次读取第一长度的文件名、第二长度的文件大小信息以及第三长度的文件内容,得到一个主机日志。
在本实施例中,在第三数据结构中,可以通过文件传输结束标识来表示第三数据结构的结束位置、基于此,目标操作系统可以对从预设存储部件读取的数据循环执行以下的解析操作,直到解析到文件传输结束标识:从预设存储部件读取的数据中首先读取第一长度的文件名,然后读取第二长度的文件大小信息,最后读取第三长度的文件内容,从而得到一个主机日志。
这里,第三长度可以是根据文件大小信息确定的,即,根据文件大小信息所指示的文件内容的大小,确定出文件内容所占用的字节数,从而读取出第三长度的文件内容。可选地,第三长度也可以是固定的,即,第三长度可以兼容所有类型的主机日志(需要备份的主机日志),根据文件大小信息所指示的文件内容的大小,可以确定出文件内容所占用的字节数,并在第三长度的文件内容中提取出有效内容,从而得到一个主机日志。本实施例中对于解析出一个主机日志的方式不做限定。
例如,RTOS系统可以从VGA显存中读取文件,按照表1~表3中规定的日志文件传输格式定义进行解析,参见图8,RTOS系统解析主机日志的流程可以包括以下步骤:
步骤S802,读取VGA显存中的日志文件;
步骤S804,读取16字节的文件名称;
步骤S806,读取4字节的文件大小len(length,长度);
步骤S808,读取len字节长度的文件内容;
步骤S810,将文件内容写入存储设备;
步骤S812,判断是否读取到文件传输结束标识,若是,返回步骤S802,若否,返回步骤S804。
通过本实施例,通过目标操作系统一次解析主机日志的日志名、日志大小以及日志内容,可以提高主机日志解析的便捷性,同时提高主机日志传输所占用的存储资源。
在一个示例性实施例中,在通过目标操作系统比较从预设存储部件读取的文件更新标识和目标操作系统本地存储的文件更新标识之前,上述方法还包括:
S141,通过目标操作系统在从预设存储部件读取的数据中查找文件传输标识,其中,文件传输标识用于表示第三数据结构的开始位置;
S142,在查找到文件传输标识的情况下,从预设存储部件读取的数据中读取文件传输标识之后的指定长度的文件更新标识,得到从预设存储部件读取的文件更新标识。
为了方便确定第三数据结构的起始位置,可以通过文件传输标识来表示第三数据结构的开始位置。在对从预设存储部件读取的数据进行解析时,可以首先从中查找文件传输标识,在查找到文件传输标识的情况下,可以继续从预设存储部件读取的数据中读取文件传输标识之后的指定长度的文件更新标识,从而得到从预设存储部件读取的文件更新标识,即,文件更新标识位于文件传输标识之后,所占用的字节数为指定的字节数,例如,4字节。
例如,如图9所示,在执行如图8所示的主机日志文件解析之前,还可以包括以下步骤:
步骤S902,读取VGA显存中的数据;
步骤S904,查找文件传输标识,在查找到文件传输标识的情况下,执行步骤S906,未查找到的情况下,返回步骤S902;
步骤S906,读取文件更新标识;
可选地,在步骤S906之后,还可以执行以下步骤:
步骤S908,判断VGA显存中存储的文件更新标识与RTOS系统本地存储的文件更新标识相比是否发生变化,若是,则执行步骤S910,否则执行步骤S902;
步骤S910,刷新RTOS系统本地存储的文件更新标识。
通过本实施例,通过文件传输标识来表示数据结构的起始位置,可以提高数据解析的准确性。
下面结合可选示例对本实施例中的日志文件存储方法进行解释说明。在本可选示例中,目标操作系统为运行在BMC芯片的至少一个处理器核心上的RTOS系统,BMC芯片运行的是异构双系统,预设存储部件为VGA显存,主机日志目录为/var,第一日志文件夹为HIST1,第二日志文件夹为HIST2。
本可选示例提供了一种基于异构双系统的服务器主机日志存储的方案,服务器的主机系统启动后生成的主机日志可以通过USB、VGA显存等通道传输到异构双系统端,基于异构双系统的主机日志进行存储备份。示意性地,本实施例中的日志文件存储方法可以包括以下步骤:
步骤1,主机系统启动,异构双系统启动。
首先,可以分别启动主机系统以及BMC芯片上的异构双系统。
步骤2,日志数据交互。
主机系统所产生的主机日志可以下存储在/var下,通过比较/var下的主机日志和HIST1中的主机日志确定是否存在需要备份的主机日志(差异项),如果是,将差异项存储到HIST2中。
主机系统将HIST2中的主机日志写入到VGA显存中,RTOS系统可访问VGA显存,从而获取到主机日志。
步骤3,日志数据存储。
RTOS系统将获取的主机日志存储到服务器外接的存储设备中。
通过本可选示例,通过对主机日志进行备份存储,可以在服务器主机宕机、磁盘损坏的情况下,仍然能够获取到主机日志。运维人员查看日志时无需经过主机,释放查看日志时的主机资源占用。在出现意外情形时,运维人员依然可以获取主机日志,快速进行故障分析定位,提高了运维效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(RandomAccess Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
根据本申请实施例的又一方面,还提供了一种日志文件存储装置,该装置用于实现上述实施例中所提供的日志文件存储方法,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图10是根据本申请实施例的一种日志文件存储装置的结构框图,如图10所示,该装置包括:
存储单元1002,用于在服务器的主机系统启动的情况下,将主机系统所产生的主机日志存储到主机日志目录下,其中,主机日志目录为指定的、用于存储主机日志的目录;
传输单元1004,用于在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统将一组主机日志经由预设存储部件传输给目标操作系统,其中,预设存储部件用于在主机系统和目标操作系统之间传输主机日志,目标操作系统是运行在服务器的BMC芯片的至少一个处理器核心上的操作系统;
写入单元1006,用于通过目标操作系统将一组主机日志写入到外接存储设备,其中,外接存储设备是服务器所外接的存储设备。
通过本申请实施例,在服务器的主机系统启动的情况下,将主机系统所产生的主机日志存储到主机日志目录下,其中,主机日志目录为指定的、用于存储主机日志的目录;在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统将一组主机日志经由预设存储部件传输给目标操作系统,其中,预设存储部件用于在主机系统和目标操作系统之间传输主机日志,目标操作系统是运行在服务器的基板管理控制器BMC芯片的至少一个处理器核心上的操作系统;通过目标操作系统将一组主机日志写入到外接存储设备,其中,外接存储设备是服务器所外接的存储设备,解决了相关技术中的日志文件存储方法存在主机异常时无法获取主机日志的问题,提高了主机日志获取的成功率。
在一个示例性实施例中,传输单元包括:
写入模块,用于在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统将一组主机日志写入到预设存储部件中;
读取模块,用于通过目标操作系统读取预设存储部件中存储的一组主机日志,以将一组主机日志传输给目标操作系统。
在一个示例性实施例中,写入模块包括:
第一执行子模块,用于在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统使用一组主机日志按照预设的第一数据结构执行组包操作,得到待传输的第一数据包,其中,第一数据包携带有一组主机日志;
第一发送子模块,用于通过主机系统将第一数据包发送到预设存储部件,以将一组主机日志写入到预设存储部件中。
在一个示例性实施例中,第一执行子模块包括:
第一执行子单元,用于在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统使用一组主机日志按照第一数据结构执行以下的组包操作,得到第一数据包:
将预设的文件传输标识赋值给第一数据结构的文件传输标识字段,其中,文件传输标识用于表示第一数据结构的开始位置;
依次读取一组主机日志中的每个主机日志,并使用读取到的每个主机日志为第一数据结构中的一个文件信息组进行赋值,其中,在一个文件信息组中,文件名字段用于存储对应的主机日志的文件名,文件大小字段用于存储对应的主机日志的文件大小信息,文件内容字段用于存储对应的主机日志的文件内容;
在与一组主机日志的最后一个主机日志对应的文件信息组之后添加传输结束标识,得到第一数据包,其中,文件传输结束标识用于标识第一数据结构的结束位置。
在一个示例性实施例中,上述装置还包括:
赋值单元,用于在将预设的文件传输标识赋值给第一数据结构的文件传输标识字段之后,将最新的文件更新标识赋值给第一数据结构的文件更新标识字段,其中,主机系统在向预设存储部件写入一组主机日志的同时,还向预设存储部件写入最新的文件更新标识;
其中,文件更新标识是主机系统在每向预设存储部件写入一个批次的主机日志时以递增的方式进行更新的、用于标识主机日志目录中是否存在未向预设存储部件传输过的主机日志的标识。
在一个示例性实施例中,主机日志目录每次向预设存储部件传输的主机日志同步存储到第一日志文件夹中,其中,第一日志文件夹用于同步存储主机日志目录中的主机日志;上述装置还包括:
比较单元,用于通过主机系统比较主机日志目录中的主机日志和第一日志文件夹中的主机日志;
确定单元,用于在相对于第一日志文件夹中的主机日志,主机日志目录中存在新增的主机日志的情况下,通过主机系统将主机日志目录中所有新增的主机日志,确定为一组主机日志;
同步单元,用于通过主机系统将主机日志目录中的一组主机日志同步到第一日志文件夹中。
在一个示例性实施例中,主机系统定时将主机日志目录中新增的主机日志写入到预设存储部件;比较单元包括:
比较模块,用于在当前的定时时间到达时,通过主机系统比较主机日志目录中的主机日志和第一日志文件夹中的主机日志,以确定主机日志目录中是否存在新增的主机日志,其中,主机日志目录中新增的主机日志是在上一次定时时间到达之后存储到主机日志目录下的主机日志。
在一个示例性实施例中,同步单元包括:
第一更新模块,用于通过主机系统使用主机日志目录中的一组主机日志更新第一日志文件夹中的主机日志,以将一组主机日志同步到第一日志文件夹中;或者,
第二更新模块,用于通过主机系统使用主机日志目录中全部的主机日志更新第一日志文件夹中的主机日志,以将一组主机日志同步到第一日志文件夹中。
在一个示例性实施例中,写入模块包括:
写入子模块,用于在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统将主机日志目录中的一组主机日志写入到第二日志文件夹中,其中,第二日志文件夹用于存储主机日志目录中新增的主机日志;
第二执行子模块,用于通过主机系统将第二日志文件夹中的一组主机日志发送到预设存储部件,并清空第二日志文件夹中的主机日志。
在一个示例性实施例中,第二执行子模块包括:
第二执行子单元,用于通过主机系统使用第二日志文件夹中的一组主机日志按照预设的第二数据结构执行组包操作,得到待传输的第二数据包,其中,第二数据包携带有一组主机日志;
第一发送子单元,用于通过主机系统将第二数据包发送到预设存储部件,以将一组主机日志写入到预设存储部件中。
在一个示例性实施例中,上述装置还包括更新单元,第二执行子模块包括第二发送子单元,其中,
更新单元,用于在通过主机系统将第二日志文件夹中的一组主机日志发送到预设存储部件之前,在主机日志目录中存在新增的一组主机日志的情况下,通过主机系统以递增的方式更新文件更新标识,得到更新的文件更新标识;
第二发送子单元,用于通过主机系统将文件更新标识和第二日志文件夹中的一组主机日志发送到预设存储部件;
其中,文件更新标识是主机系统在每向预设存储部件写入一个批次的主机日志时以递增的方式进行更新的、用于标识主机日志目录中是否存在未向预设存储部件传输过的主机日志的标识。
在一个示例性实施例中,读取模块包括:
比较子模块,用于通过目标操作系统比较从预设存储部件读取的文件更新标识和目标操作系统本地存储的文件更新标识;
更新子模块,用于在从预设存储部件读取的文件更新标识和目标操作系统本地存储的文件更新标识不一致的情况下,通过目标操作系统使用从预设存储部件读取的文件更新标识更新目标操作系统本地存储的文件更新标识;
解析子模块,用于通过目标操作系统对从预设存储部件读取的数据进行解析,得到一组主机日志;
其中,文件更新标识是主机系统在每向预设存储部件写入一个批次的主机日志时以递增的方式进行更新的、用于标识主机日志目录中是否存在未向预设存储部件传输过的主机日志的标识。
在一个示例性实施例中,解析子模块包括:
解析子单元,用于通过目标操作系统按照预设的第三数据结构的格式对从预设存储部件读取的数据进行解析,得到一组主机日志,其中,第三数据结构为预设存储部件中存储一组主机日志所使用的数据结构。
在一个示例性实施例中,在第三数据结构中,一组主机日志中的每个主机日志分别以一个文件信息组的形式进行存储,在一个文件信息组中,第一长度的文件名字段用于存储对应的主机日志的文件名,第二长度的文件大小字段用于存储对应的主机日志的文件大小信息,第三长度的文件内容字段用于存储对应的主机日志的文件内容,第三长度是通过对应的文件大小信息指示的;
解析子单元,用于通过目标操作系统执行以下的步骤实现按照第三数据结构的格式对从预设存储部件读取的数据进行解析:
对从预设存储部件读取的数据循环执行以下的解析操作,直到从预设存储部件读取的数据中解析到文件传输结束标识,得到一组主机日志,其中,文件传输结束标识用于标识第三数据结构的结束位置:从预设存储部件读取的数据中依次读取第一长度的文件名、第二长度的文件大小信息以及第三长度的文件内容,得到一个主机日志。
在一个示例性实施例中,上述装置还包括:
查找单元,用于在通过目标操作系统比较从预设存储部件读取的文件更新标识和目标操作系统本地存储的文件更新标识之前,通过目标操作系统在从预设存储部件读取的数据中查找文件传输标识,其中,文件传输标识用于表示第三数据结构的开始位置;
读取单元,用于在查找到文件传输标识的情况下,从预设存储部件读取的数据中读取文件传输标识之后的指定长度的文件更新标识,得到从预设存储部件读取的文件更新标识。
在一个示例性实施例中,预设存储部件为以下至少之一:VGA显存,共享内存,通过通用串行总线连接的存储部件,主机系统和目标操作系统之间传输的主机日志被存储在预设存储部件最后的指定大小的存储空间内,和/或,目标操作系统是用于进行主机日志收集和存储的实时操作系统。
在一个示例性实施例中,主机系统所产生的主机日志包括以下至少之一的主机日志:安全认证信息,定时任务信息,内核日志,守护进程日志,用户等级信息,系统日志服务信息,本地使用预留服务信息,邮件信息。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
根据本申请实施例的又一个方面,还提供了一种服务器,该服务器可以是前述任一实施例中的服务器,其硬件结构可以如图1所示,在该服务器上可以部署有处理部件,上述任一实施例中的BMC芯片,预设存储部件,以通过部署的处理部件、BMC芯片、预设存储部件中的至少部分实施上述任一项方法实施例中的步骤。可选地,处理部件上运行有主机系统,BMC芯片的至少一个处理器核心上运行有目标操作系统,其中:
主机系统,用于在主机系统启动的情况下,将主机系统所产生的主机日志存储到主机日志目录下,其中,主机日志目录为指定的、用于存储主机日志的目录,在主机日志目录中存在新增的一组主机日志的情况下,将一组主机日志经由预设存储部件传输给目标操作系统,其中,预设存储部件用于在主机系统和目标操作系统之间传输主机日志;
目标操作系统,用于将一组主机日志写入到外接存储设备,其中,外接存储设备是服务器所外接的存储设备。
根据本申请实施例的又一个方面,还提供了一种BMC芯片,该BMC芯片可以包括:运行有目标操作系统的至少一个处理器核心,其中,
目标操作系统,用于接收BMC芯片所在的服务器的主机系统经由预设存储部件传输的一组主机日志,并将一组主机日志文件写入到外接存储设备中;
其中,主机系统所产生的主机日志存储在主机日志目录下,主机日志目录为指定的、用于存储主机日志的目录,一组主机日志是主机日志目录中新增的主机日志,预设存储部件用于在主机系统和目标操作系统之间传输主机日志,外接存储设备是服务器所外接的存储设备。
在一些示例性实施例中,目标操作系统可以与BMC芯片所在的服务器的主机系统进行协作,以实现上述任一项方法实施例中的步骤。
根据本申请实施例的又一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
根据本申请实施例的又一方面,还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述输入输出资源池连接,该输入输出设备和上述输入输出资源池连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请实施例,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请实施例的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (22)
1.一种日志文件存储方法,其特征在于,包括:
在服务器的主机系统启动的情况下,将所述主机系统所产生的主机日志存储到主机日志目录下,其中,所述主机日志目录为指定的、用于存储主机日志的目录;
在所述主机日志目录中存在新增的一组主机日志的情况下,通过所述主机系统将所述一组主机日志经由预设存储部件传输给目标操作系统,其中,所述预设存储部件用于在所述主机系统和所述目标操作系统之间传输主机日志,所述目标操作系统是运行在所述服务器的基板管理控制器BMC芯片的至少一个处理器核心上的操作系统;
通过所述目标操作系统将所述一组主机日志写入到外接存储设备,其中,所述外接存储设备是所述服务器所外接的存储设备。
2.根据权利要求1所述的方法,其特征在于,所述在所述主机日志目录中存在新增的一组主机日志的情况下,通过所述主机系统将所述一组主机日志经由预设存储部件传输给目标操作系统,包括:
在所述主机日志目录中存在新增的所述一组主机日志的情况下,通过所述主机系统将所述一组主机日志写入到所述预设存储部件中;
通过所述目标操作系统读取所述预设存储部件中存储的所述一组主机日志,以将所述一组主机日志传输给所述目标操作系统。
3.根据权利要求2所述的方法,其特征在于,所述在所述主机日志目录中存在新增的所述一组主机日志的情况下,通过所述主机系统将所述一组主机日志写入到所述预设存储部件中,包括:
在所述主机日志目录中存在新增的所述一组主机日志的情况下,通过所述主机系统使用所述一组主机日志按照预设的第一数据结构执行组包操作,得到待传输的第一数据包,其中,所述第一数据包携带有所述一组主机日志;
通过所述主机系统将所述第一数据包发送到所述预设存储部件,以将所述一组主机日志写入到所述预设存储部件中。
4.根据权利要求3所述的方法,其特征在于,所述在所述主机日志目录中存在新增的所述一组主机日志的情况下,通过所述主机系统使用所述一组主机日志按照预设的第一数据结构执行组包操作,得到待传输的第一数据包,包括:
在所述主机日志目录中存在新增的所述一组主机日志的情况下,通过所述主机系统使用所述一组主机日志按照所述第一数据结构执行以下的组包操作,得到所述第一数据包:
将预设的文件传输标识赋值给所述第一数据结构的文件传输标识字段,其中,所述文件传输标识用于表示所述第一数据结构的开始位置;
依次读取所述一组主机日志中的每个主机日志,并使用读取到的所述每个主机日志为所述第一数据结构中的一个文件信息组进行赋值,其中,在一个所述文件信息组中,文件名字段用于存储对应的主机日志的文件名,文件大小字段用于存储对应的主机日志的文件大小信息,文件内容字段用于存储对应的主机日志的文件内容;
在与所述一组主机日志的最后一个主机日志对应的所述文件信息组之后添加传输结束标识,得到所述第一数据包,其中,所述文件传输结束标识用于标识所述第一数据结构的结束位置。
5.根据权利要求4所述的方法,其特征在于,在所述将预设的文件传输标识赋值给所述第一数据结构的文件传输标识字段之后,所述方法还包括:
将最新的文件更新标识赋值给所述第一数据结构的文件更新标识字段,其中,所述主机系统在向所述预设存储部件写入所述一组主机日志的同时,还向所述预设存储部件写入最新的所述文件更新标识;
其中,所述文件更新标识是所述主机系统在每向所述预设存储部件写入一个批次的主机日志时以递增的方式进行更新的、用于标识所述主机日志目录中是否存在未向所述预设存储部件传输过的主机日志的标识。
6.根据权利要求2所述的方法,其特征在于,所述主机日志目录每次向所述预设存储部件传输的主机日志同步存储到第一日志文件夹中,其中,所述第一日志文件夹用于同步存储所述主机日志目录中的主机日志;所述方法还包括:
通过所述主机系统比较所述主机日志目录中的主机日志和所述第一日志文件夹中的主机日志;
在相对于所述第一日志文件夹中的主机日志,所述主机日志目录中存在新增的主机日志的情况下,通过所述主机系统将所述主机日志目录中所有新增的主机日志,确定为所述一组主机日志;
通过所述主机系统将所述主机日志目录中的所述一组主机日志同步到所述第一日志文件夹中。
7.根据权利要求6所述的方法,其特征在于,所述主机系统定时将所述主机日志目录中新增的主机日志写入到所述预设存储部件;所述通过所述主机系统比较所述主机日志目录中的主机日志和所述第一日志文件夹中的主机日志,包括:
在当前的定时时间到达时,通过所述主机系统比较所述主机日志目录中的主机日志和所述第一日志文件夹中的主机日志,以确定所述主机日志目录中是否存在新增的主机日志,其中,所述主机日志目录中新增的主机日志是在上一次定时时间到达之后存储到所述主机日志目录下的主机日志。
8.根据权利要求6所述的方法,其特征在于,所述通过所述主机系统将所述主机日志目录中的所述一组主机日志同步到所述第一日志文件夹中,包括:
通过所述主机系统使用所述主机日志目录中的所述一组主机日志更新所述第一日志文件夹中的主机日志,以将所述一组主机日志同步到所述第一日志文件夹中;或者,
通过所述主机系统使用所述主机日志目录中全部的主机日志更新所述第一日志文件夹中的主机日志,以将所述一组主机日志同步到所述第一日志文件夹中。
9.根据权利要求2所述的方法,其特征在于,所述在所述主机日志目录中存在新增的一组主机日志的情况下,通过所述主机系统将所述一组主机日志写入到所述预设存储部件中,包括:
在所述主机日志目录中存在新增的所述一组主机日志的情况下,通过所述主机系统将所述主机日志目录中的所述一组主机日志写入到第二日志文件夹中,其中,所述第二日志文件夹用于存储所述主机日志目录中新增的主机日志;
通过所述主机系统将所述第二日志文件夹中的所述一组主机日志发送到所述预设存储部件,并清空所述第二日志文件夹中的主机日志。
10.根据权利要求9所述的方法,其特征在于,所述通过所述主机系统将所述第二日志文件夹中的所述一组主机日志发送到所述预设存储部件,包括:
通过所述主机系统使用所述第二日志文件夹中的所述一组主机日志按照预设的第二数据结构执行组包操作,得到待传输的第二数据包,其中,所述第二数据包携带有所述一组主机日志;
通过所述主机系统将所述第二数据包发送到所述预设存储部件,以将所述一组主机日志写入到所述预设存储部件中。
11.根据权利要求9所述的方法,其特征在于,
在所述通过所述主机系统将所述第二日志文件夹中的所述一组主机日志发送到所述预设存储部件之前,所述方法还包括:在所述主机日志目录中存在新增的所述一组主机日志的情况下,通过所述主机系统以递增的方式更新文件更新标识,得到更新的所述文件更新标识;
所述通过所述主机系统将所述第二日志文件夹中的所述一组主机日志发送到所述预设存储部件,包括:通过所述主机系统将所述文件更新标识和所述第二日志文件夹中的所述一组主机日志发送到所述预设存储部件;
其中,所述文件更新标识是所述主机系统在每向所述预设存储部件写入一个批次的主机日志时以递增的方式进行更新的、用于标识所述主机日志目录中是否存在未向所述预设存储部件传输过的主机日志的标识。
12.根据权利要求2所述的方法,其特征在于,所述通过所述目标操作系统读取所述预设存储部件中存储的所述一组主机日志,包括:
通过所述目标操作系统比较从所述预设存储部件读取的文件更新标识和所述目标操作系统本地存储的所述文件更新标识;
在从所述预设存储部件读取的所述文件更新标识和所述目标操作系统本地存储的所述文件更新标识不一致的情况下,通过所述目标操作系统使用从所述预设存储部件读取的所述文件更新标识更新所述目标操作系统本地存储的所述文件更新标识;
通过所述目标操作系统对从所述预设存储部件读取的数据进行解析,得到所述一组主机日志;
其中,所述文件更新标识是所述主机系统在每向所述预设存储部件写入一个批次的主机日志时以递增的方式进行更新的、用于标识所述主机日志目录中是否存在未向所述预设存储部件传输过的主机日志的标识。
13.根据权利要求12所述的方法,其特征在于,所述通过所述目标操作系统对从所述预设存储部件读取的数据进行解析,得到所述一组主机日志,包括:
通过所述目标操作系统按照预设的第三数据结构的格式对从所述预设存储部件读取的数据进行解析,得到所述一组主机日志,其中,所述第三数据结构为所述预设存储部件中存储所述一组主机日志所使用的数据结构。
14.根据权利要求13所述的方法,其特征在于,在所述第三数据结构中,所述一组主机日志中的每个主机日志分别以一个文件信息组的形式进行存储,在一个所述文件信息组中,第一长度的文件名字段用于存储对应的主机日志的文件名,第二长度的文件大小字段用于存储对应的主机日志的文件大小信息,第三长度的文件内容字段用于存储对应的主机日志的文件内容,所述第三长度是通过对应的文件大小信息指示的;
所述通过所述目标操作系统按照第三数据结构的格式对从所述预设存储部件读取的数据进行解析,得到所述一组主机日志,包括:
对从所述预设存储部件读取的数据循环执行以下的解析操作,直到从所述预设存储部件读取的数据中解析到文件传输结束标识,得到所述一组主机日志,其中,所述文件传输结束标识用于标识所述第三数据结构的结束位置:从所述预设存储部件读取的数据中依次读取所述第一长度的文件名、所述第二长度的文件大小信息以及所述第三长度的文件内容,得到一个主机日志。
15.根据权利要求13所述的方法,其特征在于,在所述通过所述目标操作系统比较从所述预设存储部件读取的文件更新标识和所述目标操作系统本地存储的所述文件更新标识之前,所述方法还包括:
通过所述目标操作系统在从所述预设存储部件读取的数据中查找文件传输标识,其中,所述文件传输标识用于表示所述第三数据结构的开始位置;
在查找到所述文件传输标识的情况下,从所述预设存储部件读取的数据中读取所述文件传输标识之后的指定长度的所述文件更新标识,得到从所述预设存储部件读取的所述文件更新标识。
16.根据权利要求1至15中任一项所述的方法,其特征在于,所述预设存储部件为以下至少之一:视频图形阵列VGA显存,共享内存,通过通用串行总线连接的存储部件,所述主机系统和所述目标操作系统之间传输的主机日志被存储在所述预设存储部件最后的指定大小的存储空间内,和/或,所述目标操作系统是用于进行主机日志收集和存储的实时操作系统。
17.根据权利要求1至15中任一项所述的方法,其特征在于,所述主机系统所产生的主机日志包括以下至少之一的主机日志:安全认证信息,定时任务信息,内核日志,守护进程日志,用户等级信息,系统日志服务信息,本地使用预留服务信息,邮件信息。
18.一种日志文件存储装置,其特征在于,包括:
存储单元,用于在服务器的主机系统启动的情况下,将所述主机系统所产生的主机日志存储到主机日志目录下,其中,所述主机日志目录为指定的、用于存储主机日志的目录;
传输单元,用于在所述主机日志目录中存在新增的一组主机日志的情况下,通过所述主机系统将所述一组主机日志经由预设存储部件传输给目标操作系统,其中,所述预设存储部件用于在所述主机系统和所述目标操作系统之间传输主机日志,所述目标操作系统是运行在所述服务器的基板管理控制器BMC芯片的至少一个处理器核心上的操作系统;
写入单元,用于通过所述目标操作系统将所述一组主机日志写入到外接存储设备,其中,所述外接存储设备是所述服务器所外接的存储设备。
19.一种服务器,其特征在于,包括:处理部件,基板管理控制器BMC芯片,预设存储部件,其中,所述处理部件上运行有主机系统,所述BMC芯片的至少一个处理器核心上运行有目标操作系统,其中,
所述主机系统,用于在所述主机系统启动的情况下,将所述主机系统所产生的主机日志存储到主机日志目录下,其中,所述主机日志目录为指定的、用于存储主机日志的目录,在所述主机日志目录中存在新增的一组主机日志的情况下,将所述一组主机日志经由所述预设存储部件传输给所述目标操作系统,其中,所述预设存储部件用于在所述主机系统和所述目标操作系统之间传输主机日志;
所述目标操作系统,用于将所述一组主机日志写入到外接存储设备,其中,所述外接存储设备是所述服务器所外接的存储设备。
20.一种基板管理控制器BMC芯片,其特征在于,包括:运行有目标操作系统的至少一个处理器核心,其中,
所述目标操作系统,用于接收所述BMC芯片所在的服务器的主机系统经由预设存储部件传输的一组主机日志,并将所述一组主机日志文件写入到外接存储设备中;
其中,所述主机系统所产生的主机日志存储在主机日志目录下,所述主机日志目录为指定的、用于存储主机日志的目录,所述一组主机日志是所述主机日志目录中新增的主机日志,所述预设存储部件用于在所述主机系统和所述目标操作系统之间传输主机日志,所述外接存储设备是所述服务器所外接的存储设备。
21.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序可被终端设备或计算机运行时执行权利要求1至17任一项中所述的方法。
22.一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至17任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311244921.8A CN117290321A (zh) | 2023-09-25 | 2023-09-25 | 日志文件存储方法及装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311244921.8A CN117290321A (zh) | 2023-09-25 | 2023-09-25 | 日志文件存储方法及装置、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117290321A true CN117290321A (zh) | 2023-12-26 |
Family
ID=89247513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311244921.8A Pending CN117290321A (zh) | 2023-09-25 | 2023-09-25 | 日志文件存储方法及装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117290321A (zh) |
-
2023
- 2023-09-25 CN CN202311244921.8A patent/CN117290321A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959385B (zh) | 数据库部署方法、装置、计算机设备和存储介质 | |
CN111324423A (zh) | 容器内进程的监控方法、装置、存储介质和计算机设备 | |
CN112506755A (zh) | 日志采集方法、装置、计算机设备和存储介质 | |
CN114610567A (zh) | 容器监控方法、网络设备及存储介质 | |
CN112559525B (zh) | 数据检查系统、方法、装置和服务器 | |
CN113468143A (zh) | 数据迁移方法、系统、计算设备及存储介质 | |
CN110554992B (zh) | 一种分布式元数据路径管理方法、系统、终端及存储介质 | |
CN117290321A (zh) | 日志文件存储方法及装置、存储介质及电子装置 | |
CN116991331B (zh) | 日志文件的存储方法及装置、存储介质及电子装置 | |
CN114385458A (zh) | 一种基于事件总线模型的传感器监控的方法和装置 | |
CN115729590A (zh) | 服务部署方法、装置、设备和计算机可读存储介质 | |
CN113286014B (zh) | 基础域名的动态配置方法、装置及相关设备 | |
US11316710B2 (en) | Control system and control method | |
CN115098157A (zh) | 一种公共业务数据的处理方法及装置 | |
US9710298B2 (en) | Information processing system, storage apparatus, and program | |
CN116340051A (zh) | 数据处理方法、相关装置及设备 | |
CN115328693A (zh) | 一种业务进程恢复业务的方法、装置、设备及存储介质 | |
CN116501552B (zh) | 数据备份的方法、装置、系统及存储介质 | |
CN115756732B (zh) | Io请求的监测方法及装置、存储介质及电子设备 | |
US20110023018A1 (en) | Software platform and method of managing application individuals in the software platform | |
CN115543225B (zh) | 数据处理方法、系统、装置、计算机存储介质及电子设备 | |
KR102485154B1 (ko) | 전력 통신 서비스 | |
CN113157645B (zh) | 集群数据迁移方法、装置、设备及存储介质 | |
CN110764997B (zh) | 一种数据库接口符合性测试方法以及装置 | |
US20210096763A1 (en) | Method, device, and computer program product for managing storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |