CN108153790A - 一种本地文件监控方法及装置 - Google Patents
一种本地文件监控方法及装置 Download PDFInfo
- Publication number
- CN108153790A CN108153790A CN201611110160.7A CN201611110160A CN108153790A CN 108153790 A CN108153790 A CN 108153790A CN 201611110160 A CN201611110160 A CN 201611110160A CN 108153790 A CN108153790 A CN 108153790A
- Authority
- CN
- China
- Prior art keywords
- record
- monitoring
- change
- external system
- daily record
- 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
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/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种本地文件监控方法,该方法包括以下步骤:接收外部系统针对目标目录的监控请求;确定目标目录所在的目标磁盘的卷类型;如果目标磁盘的卷类型为NTFS类型,则获得本地系统中目标磁盘对应的监控日志;获取监控日志中自外部系统上次关闭至当前时刻期间目标目录的变更记录,将获取到的变更记录发送给外部系统;对监控日志进行监控,如果监测到存在针对目标目录的变更记录,则将监测到的变更记录发送给外部系统。应用本发明实施例所提供的技术方案,可以基于监控日志实现高效可靠的文件监控,增强了文件监控的实时性,不需要定期进行全盘扫描,可以提高监控效率。本发明还公开了一种本地文件监控装置,具有相应的技术效果。
Description
技术领域
本发明涉及文件监控技术领域,特别是涉及一种本地文件监控方法及装置。
背景技术
在Windows系统中,大多利用微软的FindFirstChangeNotification和ReadDirectoryChangesW来进行文件监控。
这种方式需要人工设置缓存,以缓存文件变化情况。如果文件变化量超过缓存大小,就会产生监控数据的丢失。这不仅增加了监控应用程序的内存开销,而且难以保证大数量文件操作数据的完整性和准确性。所以,需要定期进行全盘扫描来确保数据的准确性,而全盘扫描是一个非常耗时的操作,特别是监控目录中文件数量较多的情况下,使得文件监控实时性不强、监控效率较低。
发明内容
本发明的目的是提供一种本地文件监控方法及装置,以增强文件监控的实时性,提高监控效率。
为解决上述技术问题,本发明提供如下技术方案:
一种本地文件监控方法,包括:
接收外部系统针对目标目录的监控请求;
确定所述目标目录所在的目标磁盘的卷类型;
如果所述目标磁盘的卷类型为新技术文件系统NTFS类型,则获得本地系统中所述目标磁盘对应的监控日志;
获取所述监控日志中自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录,将获取到的变更记录发送给所述外部系统;
对所述监控日志进行监控,在监控过程中,如果监测到存在针对所述目标目录的变更记录,则将监测到的变更记录发送给所述外部系统。
在本发明的一种具体实施方式中,在所述获取所述监控日志中自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录之前,还包括:
读取所述本地系统中所述监控日志的当前标识号;
确定所述当前标识号与预先记录的标识号是否一致;
如果是,则执行所述获取所述监控日志中自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录的步骤。
在本发明的一种具体实施方式中,所述获取所述监控日志中自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录,包括:
确定所述外部系统中记录的最后一条变更记录的第一更新序列号;
判断所述第一更新序列号是否小于所述监控日志中最后一条变更记录的第二更新序列号;
如果是,则根据所述监控日志中所述第一更新序列号和所述第二更新序列号之间的变更记录,确定自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录。
在本发明的一种具体实施方式中,所述根据所述监控日志中所述第一更新序列号和所述第二更新序列号之间的变更记录,确定自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录,包括:
从所述监控日志中获取所述第一更新序列号和所述第二更新序列号之间所有的变更记录;
针对获取到的每个变更记录,根据预先建立的索引,确定该变更记录对应的完整路径;
根据该变更记录对应的完整路径,确定该变更记录是否为所述目标目录的变更记录。
在本发明的一种具体实施方式中,通过以下步骤建立所述索引:
在创建所述监控日志之后,在对所述监控日志进行监控的过程中,以主文件表MFT方式遍历所述监控日志中每条变更记录;
根据遍历结果,建立每个文件夹的文件参考编号和文件夹名称的索引。
在本发明的一种具体实施方式中,在确定所述当前标识号与预先记录的标识号不一致时,还包括:
向所述外部系统返回全盘扫描的应答消息,以使所述外部系统通过全盘扫描方式获得所述目标目录的变更记录。
在本发明的一种具体实施方式中,在确定所述目标目录所在的目标磁盘的卷类型非NTFS类型时,还包括:
向所述外部系统返回更换监控方式的应答消息,以使所述外部系统更换监控方式。
一种本地文件监控装置,包括:
监控请求接收模块,用于接收外部系统针对目标目录的监控请求;
卷类型确定模块,用于确定所述目标目录所在的目标磁盘的卷类型;
监控日志获得模块,用于在所述目标磁盘的卷类型为新技术文件系统NTFS类型时,获得本地系统中所述目标磁盘对应的监控日志;
变更记录获取模块,用于获取所述监控日志中自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录,将获取到的变更记录发送给所述外部系统;
变更记录监控模块,用于对所述监控日志进行监控,在监控过程中,如果监测到存在针对所述目标目录的变更记录,则将监测到的变更记录发送给所述外部系统。
在本发明的一种具体实施方式中,还包括:
标识号一致性确定模块,用于在所述获取所述监控日志中自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录之前,读取所述本地系统中所述监控日志的当前标识号;确定所述当前标识号与预先记录的标识号是否一致;如果是,则触发所述变更记录获取模块。
在本发明的一种具体实施方式中,所述变更记录获取模块,包括:
第一更新序列号确定子模块,用于确定所述外部系统中记录的最后一条变更记录的第一更新序列号;
更新序列号判断子模块,用于判断所述第一更新序列号是否小于所述监控日志中最后一条变更记录的第二更新序列号,如果是,则触发变更记录确定子模块;
变更记录确定子模块,用于根据所述监控日志中所述第一更新序列号和所述第二更新序列号之间的变更记录,确定自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录。
应用本发明实施例所提供的技术方案,在接收到外部系统针对目标目录的监控请求时,如果确定目标目录所在的目标磁盘的卷类型为NTFS类型,则可以获得本地系统中目标磁盘对应的监控日志,获取监控日志中自外部系统上次关闭至当前时刻期间目标目录的变更记录,将获取到的变更记录发送给外部系统,对监控日志进行监控,在监控过程中,如果监测到存在针对目标目录的变更记录,则可以将监测到的变更记录发送给外部系统。这样可以基于监控日志实现高效可靠的文件监控,增强了文件监控的实时性,不需要定期进行全盘扫描,可以提高监控效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种本地文件监控方法的实施流程图;
图2为本发明实施例中本地文件监控过程的一种示意图;
图3为本发明实施例中一种本地文件监控装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种本地文件监控方法,该方法可以应用于外部系统要与本地系统中的某些目录进行数据同步的场景中,比如,本地系统中某个目录中的文件同时存放在了云盘中,云盘需要定期或者不定期地获得该目录中文件的变化情况,以与本地系统中该目录保持数据同步。当然,本发明实施例所提供的方法还可以应用于其他需要对本地文件进行监控的场景中。可以在本地系统中配置监控应用程序,通过监控应用程序对本地文件进行监控。
参见图1所示,为本发明实施例所提供的一种本地文件监控方法的实施流程图,该方法可以包括以下步骤:
S110:接收外部系统针对目标目录的监控请求。
在本发明实施例中,外部系统需要与本地系统中的某个目录进行数据同步时,需要对本地系统中该目录下文件进行监控,以获得该目录下文件的变化情况。在这种情况下,可以发出针对该目录的监控请求。
在本发明实施例中,监控请求的消息格式为设定格式,具体可以为Json字符串格式。
在本地系统正常运行过程中,监控应用程序可以接收外部系统针对目标目录的监控请求。在接收到外部系统针对目标目录的监控请求时,可以继续执行步骤S120的操作。
S120:确定目标目录所在的目标磁盘的卷类型。
在Windows系统中,磁盘可以有多种卷类型,如NTFS(New Technology FileSystem,新技术文件系统)类型和FAT(File Allocation Table,文件配置表)类型等。针对不同卷类型的磁盘的文件监控处理方式不同。在接收到外部系统针对目标目录的监控请求时,可以先确定目标目录所在的目标磁盘的卷类型。具体的,可以通过微软接口GetVolumeInformation判断目标目录所在的目标磁盘的卷类型。
S130:如果目标磁盘的卷类型为新技术文件系统NTFS类型,则获得本地系统中目标磁盘对应的监控日志。
在Windows系统中,在NTFS 5.0卷下,微软提供了监控日志,监控日志也可称为USN(Update Sequence Number,更新序列号)日志。监控日志是NTFS 5.0卷下所有文件或者目录的变化的数据库,每一个卷都有各自对应的监控日志,任何文件和目录的修改,都会有一条变更记录添加到相应监控日志中。
在实际应用中,监控日志可能并不总是处于打开状态,当监控日志未处于打开状态时,其无法记录目录或者文件的变更记录。在接收到外部系统针对目标目录的监控请求,且确定目标目录所在的目标磁盘的卷类型为NTFS类型时,可以获得本地系统中目标磁盘对应的监控日志,如果监控日志处于关闭状态,则打开该监控日志,如果不存在监控日志,则可以创建该监控日志。具体的,可以通过微软接口DeviceIoControl和监控日志的操作控制码FSCTL_CREATE_USN_JOURNAL完成监控日志的创建或打开。
获得本地系统中目标磁盘对应的监控日志后,可以继续执行步骤S140的操作。
在本发明的一个实施例中,在确定目标目录所在的目标磁盘的卷类型非NTFS类型时,可以向外部系统返回更换监控方式的应答消息,以使外部系统更换监控方式。具体的,可以按照设定的消息格式发送该应答消息,外部系统收到该应答消息后,可以使用传统的监控方式对目标目录进行监控。
S140:获取监控日志中自外部系统上次关闭至当前时刻期间目标目录的变更记录,将获取到的变更记录发送给外部系统。
在实际应用中,当外部系统与本地系统通信连接中断,或者外部系统有其他需求时,都会停止对目标目录的监控,可视为外部系统关闭。在外部系统关闭期间,目标目录可能存在变化内容。
在步骤S130,获得本地系统中目标磁盘对应的监控日志之后,可以先获取监控日志中自外部系统上次关闭至当前时刻期间目标目录的变更记录,并将获取到的变更记录发送给外部系统。
在本发明的一个实施例中,在达到设定的数据同步触发条件时,在步骤S140之前,该方法还可以包括以下步骤:
步骤一:读取本地系统中监控日志的当前标识号;
步骤二:确定当前标识号与预先记录的标识号是否一致,如果是,则执行步骤S140的操作。
为便于描述,将上述两个步骤结合起来进行说明。
在实际应用中,通过监控日志的标识号的变化情况,可以确定监控日志是否被关闭过或者被删除过。
当监控日志被关闭或者删除,重新打开的监控日志的标识号将发生变化。在监控日志被关闭或被删除,没有处于打开状态的期间,目标磁盘中的文件如果发生变化,则将不会被记录在监控日志中,也就是说,监控日志中的变更记录可能存在丢失的情况。
如果监控日志的标识号没有变化,则表明监控日志没有被关闭或者删除过,其中记录了目标磁盘中文件所有的变更记录。
在初始化目标磁盘对应的监控日志后,可以记录该监控日志的标识号,并将该监控日志的标识号进行持久化存储。在达到设定的数据同步触发条件时,可以读取本地系统中监控日志的当前标识号,具体的,可以通过微软接口DeviceIoControl和监控日志的操作控制码FSCTL_QUERY_USN_JOURNAL获取监控日志的当前标识号。将当前标识号与预先记录的标识号对比。
如果二者一致,则表明监控日志没有被删除或者关闭过,记录了目标磁盘中文件所有的变更记录。在这种情况下,可以获取监控日志中自外部系统上次关闭至当前时刻期间目标目录的变更记录。进一步的,可以将获取到的目标目录的变更记录发送给外部系统,保证文件监控的完整性和准确性。具体的,可以通过微软接口DeviceIoControl和监控日志的操作控制码FSCTL_READ_USN_JOURNAL,实现目标目录的变更记录的通知。
通过合理解析监控日志,可以准确高效的获取变更记录的变化内容,从而可以准确高效的实现文件监控功能。保证在大数据量文件操作时的数据完整性,免去了系统不必要的全盘扫描操作,大大提高了系统的监控性能,更加方便用户管理文件数据。
在本发明的一种具体实施方式中,在确定当前标识号与预先记录的标识号不一致时,可以向外部系统返回全盘扫描的应答消息,以使外部系统通过全盘扫描方式获得目标目录的变更记录,保证文件监控的准确性,实现数据同步。
在本发明的一种具体实施方式中,步骤S140可以包括以下步骤:
第一个步骤:确定外部系统中记录的最后一条变更记录的第一更新序列号;
第二个步骤:判断第一更新序列号是否小于监控日志中最后一条变更记录的第二更新序列号,如果是,则执行第三个步骤的操作;
第三个步骤:根据监控日志中第一更新序列号和第二更新序列号之间的变更记录,确定自外部系统上次关闭至当前时刻期间目标目录的变更记录。
为便于描述,将上述三个步骤结合起来进行说明。
在监控日志中,每一条变更记录均对应一个更新序列号,即USN号。在监控日志处于打开状态的情况下,每有一条新的变更记录,就会添加在监控日志的末尾。监控日志中最后一条变更记录即为最新的一条变更记录。变更记录越新其对应的更新序列号越大。
当与外部系统进行数据同步之后,可以获得并保存最后一条变更记录的第一更新序列号。
确定上一次数据同步完成后外部系统中记录的最后一条变更记录的第一更新序列号,判断该第一更新序列号是否小于监控日志中最后一条变更记录的第二更新序列号。
如果否,则第一更新序列号可能与第二更新序列号相同,表明自上一次数据同步后,监控日志中没有针对目标磁盘新的变更记录。在这种情况下,可以向外部系统返回无变更记录的应答消息或者不做任何处理。
如果是,则可以根据监控日志中第一更新序列号和第二更新序列号之间的变更记录,确定自外部系统上次关闭至当前时刻期间目标目录的变更记录。
在本发明的一种具体实施方式中,可以从监控日志中获取第一更新序列号和第二更新序列号之间所有的变更记录,针对获取到的每个变更记录,根据预先建立的索引,确定该变更记录对应的完整路径,根据该变更记录对应的完整路径,确定该变更记录是否为目标目录的变更记录。
具体的,通过微软接口DeviceIoControl和监控日志的操作控制码FSCTL_READ_USN_JOURNAL,可以获取第一更新序列号和第二更新序列号之间的所有变更记录。
在本发明的一种具体实施方式中,可以通过以下步骤建立索引:
步骤一:在创建监控日志之后,在对监控日志进行监控的过程中,以主文件表MFT方式遍历监控日志中每条变更记录;
步骤二:根据遍历结果,建立每个文件夹的文件参考编号和文件夹名称的索引。
为便于描述,将上述两个步骤结合起来进行说明。
在创建监控日志之后,可以对监控日志进行监控,在对监控日志进行监控的过程中,可以以MFT(Master File Table,主文件表)方式遍历监控日志中每条变更记录。具体的,可以通过微软接口DeviceIoControl和监控日志的操作控制码FSCTL_ENUM_USN_DATA以MFT方式遍历监控日志中每条变更记录。
根据遍历结果,可以建立每个文件夹的文件参考编号(File Reference Number,FRN)和文件夹名称的HASH索引,key为变更记录中文件夹记录对应的文件参照编号,value为变更记录中文件夹记录对应的文件夹名称。后续需要实时维护这个索引,递归查询这个索引可以获取每个变更记录对应的文件完整路径。
S150:对监控日志进行监控,在监控过程中,如果监测到存在针对目标目录的变更记录,则将监测到的变更记录发送给外部系统。
通过上述步骤S130和步骤S140的操作,可以实现对监控日志的初始化。初始化完成后,对监控日志进行监控。在对监控日志进行监控过程中,如果监测到监控日志中有新的变更记录,则可以根据该变更记录对应的文件完整路径,确定该变更记录是否为目标目录的变更记录。如果是,则可以将监测到的变更记录发送给外部系统。
在实际应用中,具体可以通过图2所示的组件实现本发明实施例所提供的技术方案。
其中,Windows系统服务组件210在Windows操作系统上以系统服务的方式运行,能够以管理员权限访问Windows操作系统内核220,从而能够读取到本地系统的监控日志221。Windows系统服务组件210通过Windows自带的服务控制管理器进行服务的管理。如果普通应用程序需要控制系统服务的开始和停止,则需要在安装系统服务之后,主动修改指定服务的自由访问控制列表(Discretionary Access Control List,DACL),该自由访问控制列表列出了允许和拒绝某用户或用户组的存取控制列表。否则系统服务默认只有具有管理员权限的应用程序才能控制其状态。
通过修改服务的DACL,使得普通应用程序也能启动服务、停止服务以及查询服务状态。在实际应用中,可以提供通用的服务控制接口供外部应用程序使用,同时可以提供一个独立运行的应用程序供服务安装的时候修改服务DACL。
文件监控组件211可以实时捕获在本地Windows NT 5.0及以上操作系统NTFS卷上被监控的目录中所做的创建、移动、删除、重命名、修改等操作。NTFS是Windows 2000及其他基于Windows NT系统的标准文件系统,而监控日志是一个存储所有NTFS 5.0卷上文件和目录变化信息的数据库。通过微软提供的DeviceIoControl接口配合监控日志的相关操作控制码,可以完成监控日志的创建/打开、MFT遍历、查询日志状态、读取指定更新序列号的变更记录、监控日志的关闭等操作。通过MFT遍历可以建立本地文件夹的FRN和文件夹名称的索引,后续可以通过该索引递归获得指定文件的完整路径。文件监控组件将获取的目标目录的变更记录通过转换变成外部系统能够处理的结构,发送到外部系统230。
消息处理组件212可以处理文件监控组件211获取的变更记录,并且将其转换成外部系统关心的消息格式,监控消息包括了变化文件的完整路径、变化原因码以及变化文件的FRN,通过将该数据结构转换成设定格式,如JSON格式字符串通过管道通信组件213发送到外部系统230,外部系统230收到消息后通过JSON进行解码,然后进行后续处理;
同样,管道通信组件213还可以接收来自于外部系统230的监控请求等。管道通信组件的服务端支持多个管道客户端并发连接,每个连接对应一个线程。多个管理连接线程可以由管道连接线程池管理。
本发明实施例通过后台系统服务的方式运行监控应用程序,可以大大减轻主应用程序的负担,中间通过消息和管道的方式进行通信,可以提高监控应用程序的扩展性。管道通信部分可以基于多线程的管道服务模型,同时可以维护多个应用程序的管道连接请求。只要按照设定的消息格式标准,可以同时为多个应用程序进行文件监控。
应用本发明实施例所提供的方法,在接收到外部系统针对目标目录的监控请求时,如果确定目标目录所在的目标磁盘的卷类型为NTFS类型,则可以获得本地系统中目标磁盘对应的监控日志,获取监控日志中自外部系统上次关闭至当前时刻期间目标目录的变更记录,将获取到的变更记录发送给外部系统,对监控日志进行监控,在监控过程中,如果监测到存在针对目标目录的变更记录,则可以将监测到的变更记录发送给外部系统。这样可以基于监控日志实现高效可靠的文件监控,增强了文件监控的实时性,不需要定期进行全盘扫描,可以提高监控效率。
相应于上面的方法实施例,本发明实施例还提供了一种本地文件监控装置,下文描述的一种本地文件监控装置与上文描述的一种本地文件监控方法可相互对应参照。
参见图3所示,该装置包括以下模块:
监控请求接收模块310,用于接收外部系统针对目标目录的监控请求;
卷类型确定模块320,用于确定目标目录所在的目标磁盘的卷类型;
监控日志获得模块330,用于在目标磁盘的卷类型为新技术文件系统NTFS类型时,获得本地系统中目标磁盘对应的监控日志;
变更记录获取模块340,用于获取监控日志中自外部系统上次关闭至当前时刻期间目标目录的变更记录,将获取到的变更记录发送给外部系统;
变更记录监控模块350,用于对监控日志进行监控,在监控过程中,如果监测到存在针对目标目录的变更记录,则将监测到的变更记录发送给外部系统。
应用本发明实施例所提供的装置,在接收到外部系统针对目标目录的监控请求时,如果确定目标目录所在的目标磁盘的卷类型为NTFS类型,则可以获得本地系统中目标磁盘对应的监控日志,获取监控日志中自外部系统上次关闭至当前时刻期间目标目录的变更记录,将获取到的变更记录发送给外部系统,对监控日志进行监控,在监控过程中,如果监测到存在针对目标目录的变更记录,则可以将监测到的变更记录发送给外部系统。这样可以基于监控日志实现高效可靠的文件监控,增强了文件监控的实时性,不需要定期进行全盘扫描,可以提高监控效率。
在本发明的一种具体实施方式中,还包括:
标识号一致性确定模块,用于在获取监控日志中自外部系统上次关闭至当前时刻期间目标目录的变更记录之前,读取本地系统中监控日志的当前标识号;确定当前标识号与预先记录的标识号是否一致;如果是,则触发变更记录获取模块340。
在本发明的一种具体实施方式中,变更记录获取模块340,包括:
第一更新序列号确定子模块,用于确定外部系统中记录的最后一条变更记录的第一更新序列号;
更新序列号判断子模块,用于判断第一更新序列号是否小于监控日志中最后一条变更记录的第二更新序列号,如果是,则触发变更记录确定子模块;
变更记录确定子模块,用于根据监控日志中第一更新序列号和第二更新序列号之间的变更记录,确定自外部系统上次关闭至当前时刻期间目标目录的变更记录。
在本发明的一种具体实施方式中,变更记录确定子模块,具体用于:
从监控日志中获取第一更新序列号和第二更新序列号之间所有的变更记录;
针对获取到的每个变更记录,根据预先建立的索引,确定该变更记录对应的完整路径;
根据该变更记录对应的完整路径,确定该变更记录是否为目标目录的变更记录。
在本发明的一种具体实施方式中,还包括索引建立模块,用于通过以下步骤建立索引:
在创建监控日志之后,在对监控日志进行监控的过程中,以主文件表MFT方式遍历监控日志中每条变更记录;
根据遍历结果,建立每个文件夹的文件参考编号和文件夹名称的索引。
在本发明的一种具体实施方式中,还包括全盘扫描应答消息返回模块,用于:
在确定当前标识号与预先记录的标识号不一致时,向外部系统返回全盘扫描的应答消息,以使外部系统通过全盘扫描方式获得目标目录的变更记录。
在本发明的一种具体实施方式中,还包括更换监控方式应答消息返回模块,用于:
在确定目标目录所在的目标磁盘的卷类型非NTFS类型时,向外部系统返回更换监控方式的应答消息,以使外部系统更换监控方式。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种本地文件监控方法,其特征在于,包括:
接收外部系统针对目标目录的监控请求;
确定所述目标目录所在的目标磁盘的卷类型;
如果所述目标磁盘的卷类型为新技术文件系统NTFS类型,则获得本地系统中所述目标磁盘对应的监控日志;
获取所述监控日志中自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录,将获取到的变更记录发送给所述外部系统;
对所述监控日志进行监控,在监控过程中,如果监测到存在针对所述目标目录的变更记录,则将监测到的变更记录发送给所述外部系统。
2.根据权利要求1所述的本地文件监控方法,其特征在于,在所述获取所述监控日志中自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录之前,还包括:
读取所述本地系统中所述监控日志的当前标识号;
确定所述当前标识号与预先记录的标识号是否一致;
如果是,则执行所述获取所述监控日志中自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录的步骤。
3.根据权利要求2所述的本地文件监控方法,其特征在于,所述获取所述监控日志中自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录,包括:
确定所述外部系统中记录的最后一条变更记录的第一更新序列号;
判断所述第一更新序列号是否小于所述监控日志中最后一条变更记录的第二更新序列号;
如果是,则根据所述监控日志中所述第一更新序列号和所述第二更新序列号之间的变更记录,确定自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录。
4.根据权利要求3所述的本地文件监控方法,其特征在于,所述根据所述监控日志中所述第一更新序列号和所述第二更新序列号之间的变更记录,确定自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录,包括:
从所述监控日志中获取所述第一更新序列号和所述第二更新序列号之间所有的变更记录;
针对获取到的每个变更记录,根据预先建立的索引,确定该变更记录对应的完整路径;
根据该变更记录对应的完整路径,确定该变更记录是否为所述目标目录的变更记录。
5.根据权利要求4所述的本地文件监控方法,其特征在于,通过以下步骤建立所述索引:
在创建所述监控日志之后,在对所述监控日志进行监控的过程中,以主文件表MFT方式遍历所述监控日志中每条变更记录;
根据遍历结果,建立每个文件夹的文件参考编号和文件夹名称的索引。
6.根据权利要求2至5任一项所述的本地文件监控方法,其特征在于,在确定所述当前标识号与预先记录的标识号不一致时,还包括:
向所述外部系统返回全盘扫描的应答消息,以使所述外部系统通过全盘扫描方式获得所述目标目录的变更记录。
7.根据权利要求1至5任一项所述的本地文件监控方法,其特征在于,在确定所述目标目录所在的目标磁盘的卷类型非NTFS类型时,还包括:
向所述外部系统返回更换监控方式的应答消息,以使所述外部系统更换监控方式。
8.一种本地文件监控装置,其特征在于,包括:
监控请求接收模块,用于接收外部系统针对目标目录的监控请求;
卷类型确定模块,用于确定所述目标目录所在的目标磁盘的卷类型;
监控日志获得模块,用于在所述目标磁盘的卷类型为新技术文件系统NTFS类型时,获得本地系统中所述目标磁盘对应的监控日志;
变更记录获取模块,用于获取所述监控日志中自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录,将获取到的变更记录发送给所述外部系统;
变更记录监控模块,用于对所述监控日志进行监控,在监控过程中,如果监测到存在针对所述目标目录的变更记录,则将监测到的变更记录发送给所述外部系统。
9.根据权利要求8所述的本地文件监控装置,其特征在于,还包括:
标识号一致性确定模块,用于在所述获取所述监控日志中自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录之前,读取所述本地系统中所述监控日志的当前标识号;确定所述当前标识号与预先记录的标识号是否一致;如果是,则触发所述变更记录获取模块。
10.根据权利要求9所述的本地文件监控装置,其特征在于,所述变更记录获取模块,包括:
第一更新序列号确定子模块,用于确定所述外部系统中记录的最后一条变更记录的第一更新序列号;
更新序列号判断子模块,用于判断所述第一更新序列号是否小于所述监控日志中最后一条变更记录的第二更新序列号,如果是,则触发变更记录确定子模块;
变更记录确定子模块,用于根据所述监控日志中所述第一更新序列号和所述第二更新序列号之间的变更记录,确定自所述外部系统上次关闭至当前时刻期间所述目标目录的变更记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611110160.7A CN108153790A (zh) | 2016-12-06 | 2016-12-06 | 一种本地文件监控方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611110160.7A CN108153790A (zh) | 2016-12-06 | 2016-12-06 | 一种本地文件监控方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108153790A true CN108153790A (zh) | 2018-06-12 |
Family
ID=62467992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611110160.7A Pending CN108153790A (zh) | 2016-12-06 | 2016-12-06 | 一种本地文件监控方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108153790A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209256A (zh) * | 2020-01-07 | 2020-05-29 | 深信服科技股份有限公司 | 一种文件监控方法、装置、电子设备及存储介质 |
CN112860649A (zh) * | 2021-02-03 | 2021-05-28 | 深圳市木浪云数据有限公司 | 增量生成索引的方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7366859B2 (en) * | 2005-10-06 | 2008-04-29 | Acronis Inc. | Fast incremental backup method and system |
CN105389509A (zh) * | 2015-11-16 | 2016-03-09 | 北京奇虎科技有限公司 | 文件扫描方法及装置 |
CN105653393A (zh) * | 2014-11-11 | 2016-06-08 | 南京壹进制信息技术有限公司 | 一种基于usn日志方式进行海量文件备份的方法 |
CN105740418A (zh) * | 2016-01-29 | 2016-07-06 | 杭州亿方云网络科技有限公司 | 一种基于文件监控和消息推送的实时同步系统 |
-
2016
- 2016-12-06 CN CN201611110160.7A patent/CN108153790A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7366859B2 (en) * | 2005-10-06 | 2008-04-29 | Acronis Inc. | Fast incremental backup method and system |
CN105653393A (zh) * | 2014-11-11 | 2016-06-08 | 南京壹进制信息技术有限公司 | 一种基于usn日志方式进行海量文件备份的方法 |
CN105389509A (zh) * | 2015-11-16 | 2016-03-09 | 北京奇虎科技有限公司 | 文件扫描方法及装置 |
CN105740418A (zh) * | 2016-01-29 | 2016-07-06 | 杭州亿方云网络科技有限公司 | 一种基于文件监控和消息推送的实时同步系统 |
Non-Patent Citations (1)
Title |
---|
DAVID ISEMINGER等: "《Win32开发人员参考库 第1卷 Windows基本服务》", 30 April 2001, 机械工业出版社 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209256A (zh) * | 2020-01-07 | 2020-05-29 | 深信服科技股份有限公司 | 一种文件监控方法、装置、电子设备及存储介质 |
CN112860649A (zh) * | 2021-02-03 | 2021-05-28 | 深圳市木浪云数据有限公司 | 增量生成索引的方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11182404B2 (en) | Data replication technique in database management system | |
CN105302895B (zh) | 一种数据缓存同步方法、服务器和客户端 | |
US7711916B2 (en) | Storing information on storage devices having different performance capabilities with a storage system | |
US20180113771A1 (en) | Transaction consistency query support for replicated data from recovery log to external data stores | |
US9052938B1 (en) | Correlation and associated display of virtual machine data and storage performance data | |
US9110909B2 (en) | File level hierarchical storage management system, method, and apparatus | |
CN110362632A (zh) | 一种数据同步方法、装置、设备及计算机可读存储介质 | |
CN103559231B (zh) | 一种文件系统配额管理方法、装置及系统 | |
US20130054530A1 (en) | Live file system migration | |
CN106254466B (zh) | 基于局域网的hdfs分布式文件共享方法 | |
CN112653730A (zh) | 一种用户态网络文件存储方法和系统 | |
US20110225373A1 (en) | Computer system and method of data cache management | |
JP6573674B2 (ja) | 共有コンテンツアイテムのストレージ制約付きの同期 | |
JP2004227359A (ja) | ポリシーに基づいたストレージシステムの運用管理方法 | |
US9298492B2 (en) | System and method for modifying allocated resources | |
JP6570761B2 (ja) | ストレージ制約付きの同期エンジン | |
CN107678918A (zh) | 一种分布式文件系统的osd心跳机制设置方法及装置 | |
CN110008174A (zh) | 一种目录导出方法、系统及相关装置 | |
CN108153790A (zh) | 一种本地文件监控方法及装置 | |
US11080239B2 (en) | Key value store using generation markers | |
CN104915376B (zh) | 一种云存储中文件的归档压缩方法 | |
US11210212B2 (en) | Conflict resolution and garbage collection in distributed databases | |
CN106611299A (zh) | 机构信息管理方法 | |
US20150309929A1 (en) | Computer system, data management method, and recording medium for storing program | |
CN105205011B (zh) | 一种获取文件块引用计数的方法、普通客户端和管理客户端 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180612 |