一种文件动态监测方法、系统、装置及存储介质与流程

文档序号:24550936发布日期:2021-04-06 12:03阅读:87来源:国知局
一种文件动态监测方法、系统、装置及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种文件动态监测方法、系统、装置及存储介质。



背景技术:

监测文件状态,如监测某个文件被哪个进程调用、某个文件被调用的频率、某个进程读取了某个文件的哪些内容以及某次读写的时间等,这些都是比较常用的需要。但是,目前监测文件状态通常是要修改源代码,存在如下2个问题:1、必须获取源代码,然后才能在源代码的基础上进行修改,如果没有源代码,将无法通过修改源代码来监测文件状态;2、获取源代码后,需要找到对应的源代码并加上日志,然后编译等操作;完成上述操作耗时耗力,效率低。



技术实现要素:

有鉴于此,本发明实施例的目的是提供一种文件动态监测方法、系统、装置及存储介质,该方法在文件动态监测过程中无需相关源代码且效率高。

第一方面,本发明实施例提供了一种文件动态监测方法,包括以下步骤:

获取监测指令;所述监测指令包括待监测文件元数据、进程id及监测事务;

根据所述监测事务注册探测点;

在所述探测点,根据所述待监测文件元数据及进程id过滤文件及进程得到监控对象;

在所述探测点,获取所述监控对象的文件动态。

可选地,所述根据所述待监测文件元数据及进程id过滤文件及进程得到监控对象,包括:

确定所述文件是否包含所述待监测文件元数据,以及确定所述进程是否包含所述进程id;

当所述文件包含所述待监测文件元数据且所述进程包含所述进程id,所述文件及进程为监测对象;

否则,放弃所述文件及进程的监测。

可选地,获取所述待监测文件元数据,包括:

获取所述待监测文件的设备编号及inode编号。

可选地,所述根据所述监测事务注册探测点,包括:

根据所述监测事务注册读和/或写探测点;其中,所述监测事务包括读和/或写监测。

可选地,所述获取所述监控对象的文件动态,包括:

获取所述监控对象的动态内容及统计动态次数。

可选地,所述方法还包括:注册异步事件。

可选地,所述方法还包括:根据所述动态次数及所述异步事件确定动态频率。

第二方面,本发明实施例提供了一种文件动态监测系统,包括:

第一获取模块,用于获取监测指令;所述监测指令包括待监测文件元数据、进程id及监测事务;

注册模块,用于根据所述监测事务注册探测点;

过滤模块,用于在所述探测点,根据所述待监测文件元数据及进程id过滤文件及进程得到监控对象;

第二获取模块,用于在所述探测点,获取所述监控对象的文件动态。

第三方面,本发明实施例提供了一种文件动态监测装置,包括:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述的文件动态监测方法。

第四方面,本发明实施例提供了一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行上述的文件动态监测方法。

实施本发明实施例包括以下有益效果:本发明实施例通过获取待监测文件元数据、进程id及监测事务,根据监测事务注册探测点,在所述探测点根据所述待监测文件元数据及进程id过滤文件及进程得到监控对象,并获取所述监控对象的文件动态;即通过注册探测点获取监控对象的文件动态,从而实现在文件动态监测过程中无需相关源代码且效率高。

附图说明

图1是本发明实施例提供的一种文件动态监测方法的步骤流程示意图;

图2是本发明实施例提供的一种文件动态监测系统的结构框图;

图3是本发明实施例提供的一种文件动态监测装置的结构框图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。

如图1所示,本发明实施例提供了一种文件动态监测方法,其包括的步骤如下所示。

s1、获取监测指令;所述监测指令包括待监测文件元数据、进程id及监测事务;

s2、根据所述监测事务注册探测点;

s3、在所述探测点,根据所述待监测文件元数据及进程id过滤文件及进程得到监控对象;

s4、在所述探测点,获取所述监控对象的文件动态。

需要说明的是,可以获取多个待监测文件的元数据。

可选地,获取所述待监测文件元数据,包括:

获取所述待监测文件的设备编号及inode编号。其中,inode表示索引节点,inode是存储文件元信息的区域,元信息包括文件的创建者、文件的创建日期、文件的大小等。每个文件都有对应的inode,每个inode都有一个号码,操作系统用inode号码来识别不同的文件。

需要说明的是,文件动态监测方法是基于systemtap完成的,如获取test.txt文件的元数据,通过下列语句获取设备编号及inode编号:stat–c‘%d%i’test.txt;通过下列语句获取进程id:psaux︳greptext。

需要说明的是,监测事务包括文件调用、文件读及文件写等监测。

可选地,所述根据所述监测事务注册探测点,包括:

根据所述监测事务注册读和/或写探测点;其中,所述监测事务包括读和/或写监测;

具体地,监测事务可以是读或写的其中一种,也可以同时包含读和写两种操作。如读探测点包括vfs.read及vfs.read.return,如读探测点包括vfs_write及vfs_write.return。

可选地,所述根据所述待监测文件元数据及进程id过滤文件及进程得到监控对象,包括:

s31、确定所述文件是否包含所述待监测文件元数据,以及确定所述进程是否包含所述进程id;

s32、当所述文件包含所述待监测文件元数据且所述进程包含所述进程id,所述文件及进程为监测对象;

s33、否则,放弃所述文件及进程的监测。

具体地,所有的进程和所有文件的操作都经过探测点,如读写探测点,所有的进程和所有文件的读写操作都会经过vfs_read和vfs_write,如当vfs_read被调用后,比较进程id和文件的元数据是否与待监测文件元数据及待监测进程id是否相同,如果元数据及进程id都相同,表明是监测对象,需要进行监测;如果元数据或进程id中有一个不相同或都不相同,表明不是监测对象,无需进行监测,直接退出。如当进入vfs.read时,用当前上下文的dev与上述设备编号对比,用ino与上述的inode编号对比,用pid与上述的进程id对比,当同时满足上述条件时,则表示匹配成功。

可选地,所述获取所述监控对象的文件动态,包括:

获取所述监控对象的动态内容及统计动态次数。

具体地,如监测有文件读写的操作,则进入对应的探测点函数内,通过文件的元数据和进程id来进行过滤,打印文件的读写内容,并将统计读写的计数加1。

可选地,所述方法还包括:注册异步事件。

具体地,注册异步事件的作用是监测上述监测事务发生的开始时间及结束时间。

可选地,所述方法还包括:根据所述动态次数及所述异步事件确定动态频率。

具体地,动态频率根据动态次数除以动态时间获得,包括进程对文件的访问频率以及文件的读写频率等。

实施本发明实施例包括以下有益效果:本发明实施例通过获取待监测文件元数据、进程id及监测事务,根据监测事务注册探测点,在所述探测点根据所述待监测文件元数据及进程id过滤文件及进程得到监控对象,并获取所述监控对象的文件动态;即通过注册探测点获取监控对象的文件动态,从而实现在文件动态监测过程中无需相关源代码且效率高。

如图2所示,本发明实施例提供了一种文件动态监测系统,包括:

第一获取模块,用于获取监测指令;所述监测指令包括待监测文件元数据、进程id及监测事务;

注册模块,用于根据所述监测事务注册探测点;

过滤模块,用于在所述探测点,根据所述待监测文件元数据及进程id过滤文件及进程得到监控对象;

第二获取模块,用于在所述探测点,获取所述监控对象的文件动态。

可见,上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。

如图3所示,本发明实施例提供了一种文件动态监测装置,包括:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上述的文件动态监测方法。

可见,上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。

此外,本申请实施例还公开了一种计算机程序产品或计算机程序,计算机程序产品或计算机程序存储在计算机可读存介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述的文件动态监测方法。同样地,上述方法实施例中的内容均适用于本存储介质实施例中,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

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