一种系统异常关机时间获取方法及系统技术方案

技术编号:30015824 阅读:20 留言:0更新日期:2021-09-11 06:23
本申请实施例公开了一种系统异常关机时间获取方法及系统,所述方法包括:读取/var/log/messages获取操作系统运行过程中各种事件的结构化日志信息,日志信息字段包括四列,经过解析各列实际的日志信息判断并定位出系统开机事件,以获得操作系统全部开机事件的前一事件时间;通过执行last

【技术实现步骤摘要】
一种系统异常关机时间获取方法及系统


[0001]本申请实施例涉及信息安全
,具体涉及一种系统异常关机时间获取方法及系统。

技术介绍

[0002]目前,有关获取国产操作系统开关机时间现有的技术,主要有以下两种方式:
[0003]第一种是通过读取/var/log/wtmp二进制文件获得操作系统开关机事件及时间,以C语言读取为例,首先声明一个utmp类型的结构体变量(该结构体的定义一般位于/usr/include/bits/utmp.h中),用于保存通过read()方法的只读方式从wtmp文件中读取到的数据,循环调用read()方法直至wtmp文件末尾,每次读取到的数据经由utmp结构体变量接收后,通过简单字符串匹配及查找,识别定位到开关机时间记录,从而得到各开关机时间。
[0004]第二种是通过操作系统提供的last命令获得操作系统开关机事件及时间,一般该命令所在路径为/usr/bin/last,执行last命令时,同样是读取了/var/log/wtmp中的内容,并以结构化数据的形式输出,一般该last命令输出字段含六列,各列分别的含义为:第一列,用户名;第二列,终端位置,其中pts/0(伪终端)代表从诸如SSH或telnet的远程连接的用户,.tty(teletypewriter)代表直接连接到计算机或者本地连接的用户;第三列,登录ip或者内核,如果显示:0.0或者空文本,代表此为用户通过本地终端连接,除重启活动外,内核版本会显示在对应状态信息中;第四列,开始时间;第五列,结束时间,其中“still login in”表示还未退出、“down”表示持续到正常关机、“crash”表示持续到强制关机;第六列,持续时间。以C语言读取为例,通过调用system()方法执行last命令后,对于system()方法返回数据,逐行按照六个字段通过简单字符串匹配及查找,识别定位到开关机时间记录,从而得到各开关机时间。
[0005]以上两种获取国产操作系统开关机时间的方式,本质上都是通过读取wtmp文件信息而得来,在通过程序算法读取文件信息过程时,由于简单字符串匹配及查找方法在执行过程中存在不匹配则查找游标回溯的机制(主子符串由第n个字符开始与目标字符串由第1个字符开始逐个字符比较过程中,遇不匹配字符时,主字符串回溯至第n+1个字符开始再次与目标字符串回溯至第1个字符开始逐个字符进行比较,循环往复直至比较结束),该机制在数据记录较多情况下,耗时较长。
[0006]同时,由于该wtmp文件中,并没有记录且无法记录操作系统异常关机的时间,比如由于内核异常造成的操作系统崩溃退出,或者直接断电后造成的操作系统异常关闭等,对于此类非正常关机的情况,并未在wtmp文件中存入记录,也就无法获知操作系统异常关机的时间。

技术实现思路

[0007]为此,本申请实施例提供一种系统异常关机时间获取方法及系统,解决如何识别国产操作系统存在异常关机的问题,解决如何获取国产操作系统异常关机时间的问题,解
决如何通过程序算法快速定位读取国产操作系统日志信息的问题。
[0008]为了实现上述目的,本申请实施例提供如下技术方案:
[0009]根据本申请实施例的第一方面,提供了一种系统异常关机时间获取方法,所述方法包括如下步骤:
[0010]通过读取/var/log/messages获取操作系统运行过程中各种事件的结构化日志信息,日志信息字段包括四列,经过解析各列实际的日志信息判断并定位出系统开机事件,以获得操作系统全部开机事件的前一事件时间;
[0011]通过执行last

x shutdown命令得到系统正常关机的结构化信息,信息字段包括六列,经过逐行解析第四列信息获得操作系统全部正常关机事件的时间;
[0012]基于全部开机事件的前一事件时间,排除与全部正常关机事件时间的交集,计算出操作系统全部异常关机时间。
[0013]可选地,四列日志信息字段中各列分别的含义为:第一列为事件的日期和时间;第二列为事件的来源主机;第三列为产生此事件程序的进程号;第四列为实际的日志信息;
[0014]所述经过解析各列实际的日志信息判断并定位出系统开机事件,包括:
[0015]对应前一事件的第一列信息即为系统开机事件的前一事件时间,按此逻辑逐行查看/var/log/messages下的所有日志信息,以获得系统的全部开机事件的前一事件时间。
[0016]可选地,六列信息字段中各列信息及含义分别为:第一列为shutdown;第二列为system down;第三列为内核版本;第四列为开始时间;第五列为结束时间;第六列为持续时间。
[0017]可选地,/var/log/messages记录了所有操作系统运行过程中包括开机及关机在内的各种事件及时间,正常开机事件时间之前的事件为上一次操作系统正常开机后至上一次操作系统关机之间的事件。
[0018]根据本申请实施例的第二方面,提供了一种系统异常关机时间获取系统,所述系统包括:
[0019]前一时间时间获取模块,用于通过读取/var/log/messages获取操作系统运行过程中各种事件的结构化日志信息,日志信息字段包括四列,经过解析各列实际的日志信息判断并定位出系统开机事件,以获得操作系统全部开机事件的前一事件时间;
[0020]正常关机时间获取模块,用于通过执行last

x shutdown命令得到系统正常关机的结构化信息,信息字段包括六列,经过逐行解析第四列信息获得操作系统全部正常关机事件的时间;
[0021]异常关机时间计算模块,用于基于全部开机事件的前一事件时间,排除与全部正常关机事件时间的交集,计算出操作系统全部异常关机时间。
[0022]可选地,四列日志信息字段中各列分别的含义为:第一列为事件的日期和时间;第二列为事件的来源主机;第三列为产生此事件程序的进程号;第四列为实际的日志信息;
[0023]所述经过解析各列实际的日志信息判断并定位出系统开机事件,包括:对应前一事件的第一列信息即为系统开机事件的前一事件时间,按此逻辑逐行查看/var/log/messages下的所有日志信息,以获得系统的全部开机事件的前一事件时间。
[0024]可选地,六列信息字段中各列信息及含义分别为:第一列为shutdown;第二列为system down;第三列为内核版本;第四列为开始时间;第五列为结束时间;第六列为持续时
间。
[0025]可选地,/var/log/messages记录了所有操作系统运行过程中包括开机及关机在内的各种事件及时间,正常开机事件时间之前的事件为上一次操作系统正常开机后至上一次操作系统关机之间的事件。
[0026]根据本申请实施例的第三方面,提供了一种设备,所述设备包括:数据采集装置、处理器和存储器;所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种系统异常关机时间获取方法,其特征在于,所述方法包括如下步骤:通过读取/var/log/messages获取操作系统运行过程中各种事件的结构化日志信息,日志信息字段包括四列,经过解析各列实际的日志信息判断并定位出系统开机事件,以获得操作系统全部开机事件的前一事件时间;通过执行last

x shutdown命令得到系统正常关机的结构化信息,信息字段包括六列,经过逐行解析第四列信息获得操作系统全部正常关机事件的时间;基于全部开机事件的前一事件时间,排除与全部正常关机事件时间的交集,计算出操作系统全部异常关机时间。2.如权利要求1所述的方法,其特征在于,四列日志信息字段中各列分别的含义为:第一列为事件的日期和时间;第二列为事件的来源主机;第三列为产生此事件程序的进程号;第四列为实际的日志信息;所述经过解析各列实际的日志信息判断并定位出系统开机事件,包括:对应前一事件的第一列信息即为系统开机事件的前一事件时间,按此逻辑逐行查看/var/log/messages下的所有日志信息,以获得系统的全部开机事件的前一事件时间。3.如权利要求1所述的方法,其特征在于,六列信息字段中各列信息及含义分别为:第一列为shutdown;第二列为system down;第三列为内核版本;第四列为开始时间;第五列为结束时间;第六列为持续时间。4.如权利要求1所述的方法,其特征在于,/var/log/messages记录了所有操作系统运行过程中包括开机及关机在内的各种事件及时间,正常开机事件时间之前的事件为上一次操作系统正常开机后至上一次操作系统关机之间的事件。5.一种系统异常关机时间获取系统,其特征在于,所述系统包括:前一时间时间获取模块,用于通过读取/var/log/messages获取操作系统运行过程中各种事件的结构化日志信息,日志信息字段包括四列,经过解析各列实际的日志信息判断并定位出系统开机事件,以获得操作系...

【专利技术属性】
技术研发人员:张诚金梁佳佳刘志权
申请(专利权)人:北京鼎普科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1