欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種linux系統(tǒng)中變化文件的截獲方法及裝置制造方法

文檔序號:6525709閱讀:202來源:國知局
一種linux系統(tǒng)中變化文件的截獲方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種LINUX系統(tǒng)中的文件截獲方法及裝置,其中,所述方法包括:將LINUX系統(tǒng)的文件事件截獲策略封裝提供統(tǒng)一的接口;調(diào)用所述統(tǒng)一的接口對文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,截獲發(fā)生變化事件的文件,并將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲。本發(fā)明的方法和裝置以實現(xiàn)文件事件截獲策略的靈活切換,避免當(dāng)系統(tǒng)出現(xiàn)異常時丟失文件,同時支持大量級的文件的監(jiān)控,降低對內(nèi)存的消耗,同時對發(fā)生變化事件的文件的路徑的存儲方式進行了封裝提供統(tǒng)一接口,可在這些存儲方式間進行靈活切換;對發(fā)生變化事件的文件的存儲路徑進行去重優(yōu)化,減小了數(shù)據(jù)的冗余。
【專利說明】一種LINUX系統(tǒng)中變化文件的截獲方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機通信領(lǐng)域,具體涉及一種LINUX系統(tǒng)中變化文件的截獲方法及
>J-U ρ?α裝直。
【背景技術(shù)】
[0002]信息安全及數(shù)據(jù)容災(zāi)是IT信息系統(tǒng)建設(shè)中必須要關(guān)注的兩個重要環(huán)節(jié)。信息安全關(guān)注于當(dāng)前系統(tǒng)的安全性,確保系統(tǒng)不被入侵,數(shù)據(jù)不被竊?。粩?shù)據(jù)容災(zāi)關(guān)注的是數(shù)據(jù)在停電,火災(zāi),地震等災(zāi)難的情況下不被破壞,不發(fā)生丟失。無論是在信息安全領(lǐng)域還是在數(shù)據(jù)容災(zāi)領(lǐng)域,確定系統(tǒng)中發(fā)生變化事件的文件均是一項基礎(chǔ)但卻十分重要的技術(shù)。文件發(fā)生變化事件主要是指用戶對文件的新建和刪除、對文件內(nèi)容及屬性進行了修改,對于信息安全領(lǐng)域,病毒掃描軟件、殺毒軟件的輸入對象就是一個個發(fā)生變化事件的文件;對于數(shù)據(jù)容災(zāi)領(lǐng)域,需要同步的也是一個個發(fā)生變化事件的文件。可見,截獲發(fā)生變化事件的文件技術(shù)在IT信息系統(tǒng)中至關(guān)重要。
[0003]LINUX系統(tǒng)中,對于發(fā)生變化事件的文件的截獲可分為兩種方式:內(nèi)核級截獲及用戶態(tài)截獲。內(nèi)核級截獲需要編寫相應(yīng)的內(nèi)核模塊或是文件過濾驅(qū)動進行截獲,其優(yōu)點截獲準(zhǔn)確度高,不發(fā)生遺漏,能夠取消文件變化的請求,但缺點是可移植性不好,需要根據(jù)每個系統(tǒng)版本進行調(diào)整,同時,由于是內(nèi)核態(tài)的截獲,也會影響系統(tǒng)的穩(wěn)定性;用戶態(tài)截獲通過操作系統(tǒng)提供的接口進行截獲,其優(yōu)點是適應(yīng)性好,對系統(tǒng)的破壞性小,不影響系統(tǒng)的穩(wěn)定,但缺點是可能發(fā)生截獲遺漏,并且只能進行單純的截獲,不能取消文件變化的請求。
[0004]LINUX系統(tǒng)提供了 FSN0TIFY機制進行文件的事件通知,在其上提供了 3種文件事件截獲策略:inotify、dnotify及anotify。其中,dnotify僅可截獲文件夾的變化事件,其通知方式為信號;anotify可截獲整`個文件,所有磁盤,文件夾及文件的變化事件,但其截獲的事件較少可截獲文件夾及文件的變化事件。目前,對這3種文件事件截獲策略往往僅僅使用一種,而缺少在這3種截獲策略中靈活的切換。
[0005]通常截獲到變化事件后的處理方式是放在內(nèi)存里處理,但是,在內(nèi)存中處理會存在很多弊端,比如:當(dāng)系統(tǒng)出現(xiàn)異常,比如突然關(guān)機或進程中斷,就會將截獲到的文件丟失;此外,內(nèi)存是有限的,對于大量級的文件,比如千萬量級的路徑如果存儲到內(nèi)存是不現(xiàn)實的,無法支持大量級的文件的監(jiān)控;另外還會消耗大量內(nèi)存,降低內(nèi)存的效率。

【發(fā)明內(nèi)容】

[0006]本發(fā)明需要解決的技術(shù)問題是提供一種LINUX系統(tǒng)中變化文件的截獲方法及裝置,以實現(xiàn)文件事件截獲策略的靈活切換,避免當(dāng)系統(tǒng)出現(xiàn)異常時丟失文件,同時支持大量級的文件的監(jiān)控,降低對內(nèi)存的消耗。
[0007]為了解決上述技術(shù)問題,本發(fā)明提供了一種LINUX系統(tǒng)中的文件截獲方法,包括:
[0008]將LINUX系統(tǒng)的文件事件截獲策略封裝提供統(tǒng)一的接口 ;
[0009]調(diào)用所述統(tǒng)一的接口對文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,截獲發(fā)生變化事件的文件,并將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲。
[0010]進一步地,所述調(diào)用所述統(tǒng)一的接口對文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,截獲發(fā)生變化事件的文件,包括:
[0011]調(diào)用所述統(tǒng)一的接口對文件進行監(jiān)控,并根據(jù)用戶設(shè)置的配置文件選擇相應(yīng)的文件事件截獲策略,當(dāng)有文件發(fā)生變化事件時,根據(jù)所述文件事件截獲策略截獲發(fā)生變化事件的文件。
[0012]進一步地,所述在截獲發(fā)生變化事件的文件之后,還包括:判斷所述發(fā)生變化事件的系統(tǒng)文件是否屬于需要監(jiān)控的文件,如果是,則將所述發(fā)生變化事件的系統(tǒng)文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲。
[0013]進一步地,所述方法還包括:對寫入數(shù)據(jù)的方式進行封裝,提供統(tǒng)一的數(shù)據(jù)寫入接Π ;
[0014]所述將所述發(fā)生變化事件的系統(tǒng)文件的路徑和變化事件進行數(shù)據(jù)持久化存儲,包括:調(diào)用所述統(tǒng)一的數(shù)據(jù)寫入接口,將所述發(fā)生變化事件的系統(tǒng)文件的路徑和與所述路徑對應(yīng)的變化事件寫入到相應(yīng)的文件或數(shù)據(jù)庫中。
[0015]進一步地,所述方法還包括:
[0016]在將所述發(fā)生變化事件的系統(tǒng)文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲時,判斷所述路徑是否為當(dāng)前路徑,如果是,則不存儲;如果不是,則將該路徑存儲,并標(biāo)記為當(dāng)前路徑。
[0017]為了解決上述技術(shù)問題,本發(fā)明還提供了一種LINUX系統(tǒng)中的文件截獲裝置,包括:
[0018]策略封裝模塊,用于將LINUX系統(tǒng)的文件事件截獲策略封裝提供統(tǒng)一的接口 ;
[0019]通用文件捕獲模塊,用于在調(diào)用所述統(tǒng)一的接口時,對文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,截獲發(fā)生變化事件的文件,并通知通用路徑存儲模塊將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲;
[0020]通用路徑存儲模塊,用于將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲。
[0021]進一步地,所述通用文件捕獲模塊,用于在調(diào)用所述統(tǒng)一的接口時,對所述文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,截獲發(fā)生變化事件的文件,包括:
[0022]在調(diào)用所述統(tǒng)一的接口時,根據(jù)用戶設(shè)置的配置文件選擇相應(yīng)的文件事件截獲策略對文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,根據(jù)所述文件事件截獲策略截獲發(fā)生變化事件的文件。
[0023]進一步地,所述裝置還包括:
[0024]監(jiān)控文件記錄模塊,用于記錄所有需要監(jiān)控的文件的路徑,并將所述文件的路徑傳遞給所述通用文件捕獲模塊;還用于在收到所述所述通用文件捕獲模塊的通知后,判斷所述發(fā)生變化事件的文件是否屬于所述需要監(jiān)控的文件,如果是,則通知所述通用路徑存儲模塊將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲;
[0025]所述通用文件捕獲模塊,還用于在截獲所述發(fā)生變化事件的系統(tǒng)文件之后,通知所述監(jiān)控文件記錄模塊對所述發(fā)生變化事件的系統(tǒng)文件進行判斷。
[0026]進一步地,所述通用路徑存儲模塊,還用于對寫入數(shù)據(jù)的方式進行封裝,提供統(tǒng)一的數(shù)據(jù)寫入接口;
[0027]所述通用路徑存儲模塊,用于將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲,包括:
[0028]調(diào)用所述統(tǒng)一的數(shù)據(jù)寫入接口,將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件寫入到相應(yīng)的文件或數(shù)據(jù)庫中。
[0029]進一步地,所述通用路徑存儲模塊,還用于在將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲時,判斷所述路徑是否為當(dāng)前路徑,如果是,則不存儲;如果不是,則將該路徑存儲,并標(biāo)記為當(dāng)前路徑。
[0030]與現(xiàn)有技術(shù)相比,本發(fā)明提供的LINUX系統(tǒng)中的文件截獲方法及裝置,具有以下有益效果:
[0031]I)對LINUX系統(tǒng)提供的文件系統(tǒng)事件截獲策略進行封裝,通過調(diào)用統(tǒng)一接口,例如,對FSN0TIFY機制中的三種策略進行封裝,提供統(tǒng)一接口,實現(xiàn)了 inotify,dnotify及anotify截獲策略的靈活切換;
[0032]2)相對于現(xiàn)有技術(shù)僅將截獲到的文件直接在內(nèi)存中處理,本發(fā)明將截獲到的文件實體化,進行文件存儲或數(shù)據(jù)塊存儲,即存儲到磁盤上,可以避免當(dāng)系統(tǒng)出現(xiàn)異常時丟失文件,而且可以支持大量級的文件的監(jiān)控;降低對內(nèi)存的消耗;
[0033]3)同時對發(fā)生變化事件的文件的路徑的存儲方式進行了封裝提供統(tǒng)一接口,通過調(diào)用統(tǒng)一接口,能夠使用不同的數(shù)據(jù)存儲方式(比如xml文件,SQLite數(shù)據(jù)庫,MySQL數(shù)據(jù)庫),并可在這些存儲方式間進行靈活切換;
[0034]4)對發(fā)生變化事件的文件的存儲路徑進行去重優(yōu)化,減小了數(shù)據(jù)的冗余。
【專利附圖】

【附圖說明】
[0035]圖1是實施例中LINUX系統(tǒng)中的文件截獲系統(tǒng)結(jié)構(gòu)圖;
[0036]圖2是實施例中LINUX系統(tǒng)中的文件方法流程圖;
[0037]圖3是一個應(yīng)用示例中LINUX系統(tǒng)中變化文件的方法流程圖;
[0038]圖4是實施例中通用路徑存儲模塊涉及的連續(xù)去重流程圖。
【具體實施方式】
[0039]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
[0040]實施例:
[0041]如圖1所示,本實施例提供了一種LINUX系統(tǒng)中的文件截獲系統(tǒng),包括:主控模塊和文件截獲裝置,該文件截獲裝置包括:策略封裝模塊、監(jiān)控文件記錄模塊、通用文件捕獲模塊和通用路徑存儲模塊,其中:
[0042]策略封裝模塊,用于將LINUX系統(tǒng)的文件事件截獲策略封裝提供統(tǒng)一的接口 ;
[0043]例如,將LINUX系統(tǒng)fsnotify機制提供的文件事件截獲策略封裝提供統(tǒng)一的接□。
[0044]監(jiān)控文件記錄模塊,用于記錄所有需要監(jiān)控的文件的路徑,并將所述文件的路徑傳遞給所述通用文件捕獲模塊;
[0045]其中,所述監(jiān)控文件記錄模塊,還用于添加或刪除需要監(jiān)控的文件的路徑。所述需要監(jiān)控的文件包括一個或多個文件夾或者僅僅一個文件數(shù)據(jù)。比如,當(dāng)前有3個磁盤C、D、E,監(jiān)控文件記錄模塊可以僅監(jiān)控磁盤C的文件,并記錄C盤文件的路徑。
[0046]通用文件捕獲模塊,用于在主控模塊調(diào)用該統(tǒng)一的接口時,對系統(tǒng)文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,截獲發(fā)生變化事件的文件,并通知通用路徑存儲模塊將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲;
[0047]用戶態(tài)截獲通過操作系統(tǒng)提供的接口進行截獲,但是,由于fsnotify機制提供的3種文件事件截獲策略,即inotify, dnotify及anotify的接口不同,一般在使用時,僅調(diào)用一個接口,因此,截獲文件很不靈活,而本實施例中主控模塊無需選擇具體的截獲策略僅調(diào)用該統(tǒng)一接口,就可以實現(xiàn)對變化文件的監(jiān)控和截獲。
[0048]優(yōu)選地,所述通用文件捕獲模塊,用于在調(diào)用所述統(tǒng)一的接口時,對所述文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,截獲發(fā)生變化事件的文件,包括:
[0049]在調(diào)用所述統(tǒng)一的接口時,根據(jù)用戶設(shè)置的配置文件選擇相應(yīng)的文件事件截獲策略對文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,根據(jù)所述文件事件截獲策略截獲發(fā)生變化事件的文件。
[0050]優(yōu)選地,所述通用文件捕獲模塊,還用于在截獲所述發(fā)生變化事件的文件之后,通知所述監(jiān)控文件記錄模塊對所述發(fā)生變化事件的文件進行判斷。
[0051]所述監(jiān)控文件記錄模塊,還用于在收到所述通用文件捕獲模塊的通知后,判斷所述發(fā)生變化事件的文件是否屬于所述需要監(jiān)控的文件,如果是,則通知所述通用路徑存儲模塊將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲;
[0052]所述通用路徑存儲模塊,用于將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲。
[0053]對于數(shù)據(jù)持久化,就是將截獲的變化數(shù)據(jù)進行存儲,以供給使用者使用,而這種存儲必須是非易失的??梢赃x擇文件存儲,也可以進行數(shù)據(jù)庫存儲?,F(xiàn)有技術(shù)中,當(dāng)數(shù)據(jù)規(guī)模較小時(〈200MB),可采用XML文件的方式進行存儲;當(dāng)數(shù)據(jù)達(dá)到一定的規(guī)模(〈1GB),可選用SQLite這種嵌入式數(shù)據(jù)庫進行存儲;當(dāng)數(shù)據(jù)持續(xù)增長到不適于嵌入式數(shù)據(jù)庫存儲時,可選用MySQL數(shù)據(jù)庫進行存儲。也就是說,目前,文件的寫入數(shù)據(jù)方式和數(shù)據(jù)塊寫入數(shù)據(jù)的方式是不同的,具體到API的處理方式和調(diào)用方式也是不一樣,一般在使用時,僅采用其中的一種方式,因此,存儲數(shù)據(jù)很不靈活。
[0054]為了能夠使用不同的數(shù)據(jù)存儲方式,并可在這些存儲方式間進行切換。優(yōu)選地,所述通用路徑存儲模塊,還用于對寫入數(shù)據(jù)的方式進行封裝,提供統(tǒng)一的數(shù)據(jù)寫入接口 ;通過調(diào)用所述統(tǒng)一的數(shù)據(jù)寫入接口,將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件寫入到相應(yīng)的文件或數(shù)據(jù)庫中。
[0055]優(yōu)選地,所述通用路徑存儲模塊,還用于在將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲時,判斷所述路徑是否為當(dāng)前路徑,如果是,則不存儲;如果不是,則將該路徑存儲,并標(biāo)記為當(dāng)前路徑。當(dāng)前路徑為上一次進行數(shù)據(jù)持久化存儲的路徑。
[0056]S卩,對變化文件存儲路徑進行去重優(yōu)化,當(dāng)在xml文件或數(shù)據(jù)庫中連續(xù)存儲相同的路徑時,可以進行去重,只存入一條路徑,從而減小了數(shù)據(jù)的冗余。
[0057]如圖2所示,本實施例提供了一種LINUX系統(tǒng)中變化文件的截獲方法,包括以下步驟:
[0058]SlOl:將LINUX系統(tǒng)的文件事件截獲策略封裝提供統(tǒng)一的接口 ;
[0059]例如,將LINUX系統(tǒng)fsnotify機制提供的文件系統(tǒng)事件截獲策略封裝提供統(tǒng)一的接口 ;
[0060]S102:調(diào)用該統(tǒng)一的接口對文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,截獲發(fā)生變化事件的文件;
[0061]在調(diào)用統(tǒng)一的接口后,根據(jù)用戶設(shè)定的配置文件選擇使用INOTIFY、DNOTIFY或是ANOTIFY中的一個截獲策略進行文件事件監(jiān)控,并截獲發(fā)生變化事件的文件。
[0062]S103:將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲。
[0063]優(yōu)選地,所述方法還包括:對寫入數(shù)據(jù)的方式進行封裝,提供統(tǒng)一的數(shù)據(jù)寫入接Π ;
[0064]所述步驟S103具體包括:調(diào)用所述統(tǒng)一的數(shù)據(jù)寫入接口,將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件寫入到相應(yīng)的文件或數(shù)據(jù)庫中。
[0065]優(yōu)選地,在步驟S103中還包括路徑去重優(yōu)化的步驟:
[0066]在將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲時,判斷所述路徑是否為當(dāng)前路徑,如果是,則不存儲;如果不是,則將該路徑存儲,并標(biāo)記為當(dāng)前路徑。
[0067]在另外一個優(yōu)選的實施例中,在步驟S103之前,還包括:
[0068]判斷所述發(fā)生變化事件的文件是否屬于需要監(jiān)控的文件,如果是,則將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲。
[0069]在一個應(yīng)用示例中,采用上述實施例中的截獲系統(tǒng),如圖3所示,LINUX系統(tǒng)中的文件截獲方法,包括以下步驟:
[0070]S301:主控模塊通過監(jiān)控文件記錄模塊獲取需要監(jiān)控的文件列表,并將這些文件列表傳遞給通用文件捕獲模塊進行監(jiān)控;
[0071]S302:主控模塊調(diào)用通用文件捕獲模塊封裝了截獲策略的統(tǒng)一接口 ;
[0072]S303:通用文件捕獲模塊使用INOTIFY、DNOTIFY或是ANOTIFY中的一個進行文件事件監(jiān)控;
[0073]例如,用戶設(shè)定為采用anotify作為當(dāng)前文件的文件事件截獲策略,由于anotify可以監(jiān)控整個文件,上報整個系統(tǒng)內(nèi)磁盤文件的變化事件;
[0074]S304:當(dāng)監(jiān)控到文件發(fā)生變化事件時,通知主控模塊;主控模塊調(diào)用監(jiān)控文件記錄模塊判斷該事件的路徑是否為需要監(jiān)控的文件的路徑,如果是,則執(zhí)行步驟S305 ;否則,不對該事件進行存儲處理,結(jié)束流程;
[0075]例如,監(jiān)控文件記錄模塊僅需要監(jiān)控磁盤C的文件,當(dāng)采用anotify系統(tǒng)文件事件截獲策略時,也會上報其他磁盤發(fā)生變化的文件事件,此時,判斷出其他其他磁盤上的發(fā)生變化事件的文件不屬于需要監(jiān)控的文件,因此,不對其他磁盤的發(fā)生變化事件的文件進行存儲處理。
[0076]S305:主控模塊調(diào)用通用路徑存儲模塊將變化的文件的路徑和變化事件存儲在XML 文件、SQLite 或是 MySQL 中。
[0077]存儲的事件包括:發(fā)生變化的事件,如文件的刪除、修改或新建,以及發(fā)生變化的時間。
[0078]圖4為通用路徑存儲模塊涉及的連續(xù)去重過程:
[0079]S401:當(dāng)將路徑A插入數(shù)據(jù)庫時,首先判斷路徑A是否為當(dāng)前路徑,如為當(dāng)前路徑,則說明A之前曾經(jīng)插入過數(shù)據(jù)庫,不需要再次插入;如果A不是當(dāng)前路徑,則執(zhí)行步驟S402 ;
[0080]S402:將發(fā)生變化事件的文件數(shù)據(jù)寫入到數(shù)據(jù)塊中,將路徑A插入到數(shù)據(jù)庫中;
[0081]S403:將當(dāng)前路徑置為A,以待下次插入時進行去重。
[0082]從上述實施例可以看出,相對于現(xiàn)有技術(shù),上述實施例中提供的LINUX系統(tǒng)中的文件截獲方法及裝置,對LINUX系統(tǒng)提供的文件系統(tǒng)事件截獲策略進行封裝,通過調(diào)用統(tǒng)一接口,實現(xiàn)了各種截獲策略的靈活切換;相對于現(xiàn)有技術(shù)僅將截獲到的文件直接在內(nèi)存中處理,本實施例將截獲到的文件實體化,進行文件存儲或數(shù)據(jù)塊存儲,即存儲到磁盤上,可以避免當(dāng)系統(tǒng)出現(xiàn)異常時丟失文件,而且可以支持大量級的文件的監(jiān)控;降低對內(nèi)存的消耗;同時對發(fā)生變化事件的文件的路徑的存儲方式進行了封裝提供統(tǒng)一接口,通過調(diào)用統(tǒng)一接口,能夠使用不同的數(shù)據(jù)存儲方式,并可在這些存儲方式間進行靈活切換;最后,本實施例還可以對發(fā)生變化事件的文件的存儲路徑進行去重優(yōu)化,減小了數(shù)據(jù)的冗余。
[0083]本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,所述程序可以存儲于計算機可讀存儲介質(zhì)中,如只讀存儲器、磁盤或光盤等??蛇x地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現(xiàn)。相應(yīng)地,上述實施例中的各模塊/單元可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。
[0084]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并非用于限定本發(fā)明的保護范圍。根據(jù)本發(fā)明的
【發(fā)明內(nèi)容】
,還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種LINUX系統(tǒng)中的文件截獲方法,包括: 將LINUX系統(tǒng)的文件事件截獲策略封裝提供統(tǒng)一的接口 ; 調(diào)用所述統(tǒng)一的接口對文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,截獲發(fā)生變化事件的文件,并將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲。
2.如權(quán)利要求1所述的方法,其特征在于: 所述調(diào)用所述統(tǒng)一的接口對文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,截獲發(fā)生變化事件的文件,包括: 調(diào)用所述統(tǒng)一的接口對文件進行監(jiān)控,并根據(jù)用戶設(shè)置的配置文件選擇相應(yīng)的文件事件截獲策略,當(dāng)有文件發(fā)生變化事件時,根據(jù)所述文件事件截獲策略截獲發(fā)生變化事件的文件。
3.如權(quán)利要求1或2所述的方法,其特征在于: 所述在截獲發(fā)生變化事件的文件之后,還包括:判斷所述發(fā)生變化事件的系統(tǒng)文件是否屬于需要監(jiān)控的文件,如果是,則將所述發(fā)生變化事件的系統(tǒng)文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲。
4.如權(quán)利要求3所述的方法,其特征在于:所述方法還包括:對寫入數(shù)據(jù)的方式進行封裝,提供統(tǒng)一的數(shù)據(jù)寫入接口 ; 所述將所述發(fā)生變化事件的系統(tǒng)文件的路徑和變化事件進行數(shù)據(jù)持久化存儲,包括:調(diào)用所述統(tǒng)一的數(shù)據(jù)寫入接口,將所述發(fā)生變化事件的系統(tǒng)文件的路徑和與所述路徑對應(yīng)的變化事件寫入到相應(yīng)的文`件或數(shù)據(jù)庫中。
5.如權(quán)利要求3所述的方法,其特征在于:所述方法還包括: 在將所述發(fā)生變化事件的系統(tǒng)文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲時,判斷所述路徑是否為當(dāng)前路徑,如果是,則不存儲;如果不是,則將該路徑存儲,并標(biāo)記為當(dāng)前路徑。
6.一種LINUX系統(tǒng)中的文件截獲裝置,包括: 策略封裝模塊,用于將LINUX系統(tǒng)的文件事件截獲策略封裝提供統(tǒng)一的接口 ; 通用文件捕獲模塊,用于在調(diào)用所述統(tǒng)一的接口時,對文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,截獲發(fā)生變化事件的文件,并通知通用路徑存儲模塊將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲; 通用路徑存儲模塊,用于將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲。
7.如權(quán)利要求6所述的裝置,其特征在于: 所述通用文件捕獲模塊,用于在調(diào)用所述統(tǒng)一的接口時,對所述文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,截獲發(fā)生變化事件的文件,包括: 在調(diào)用所述統(tǒng)一的接口時,根據(jù)用戶設(shè)置的配置文件選擇相應(yīng)的文件事件截獲策略對文件進行監(jiān)控,當(dāng)有文件發(fā)生變化事件時,根據(jù)所述文件事件截獲策略截獲發(fā)生變化事件的文件。
8.如權(quán)利要求7所述的裝置,其特征在于:所述裝置還包括: 監(jiān)控文件記錄模塊,用于記錄所有需要監(jiān)控的文件的路徑,并將所述文件的路徑傳遞給所述通用文件捕獲模塊;還用于在收到所述所述通用文件捕獲模塊的通知后,判斷所述發(fā)生變化事件的文件是否屬于所述需要監(jiān)控的文件,如果是,則通知所述通用路徑存儲模塊將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲; 所述通用文件捕獲模塊,還用于在截獲所述發(fā)生變化事件的系統(tǒng)文件之后,通知所述監(jiān)控文件記錄模塊對所述發(fā)生變化事件的系統(tǒng)文件進行判斷。
9.如權(quán)利要求8所述的裝置,其特征在于: 所述通用路徑存儲模塊,還用于對寫入數(shù)據(jù)的方式進行封裝,提供統(tǒng)一的數(shù)據(jù)寫入接Π ; 所述通用路徑存儲模塊,用于將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲,包括: 調(diào)用所述統(tǒng)一的數(shù)據(jù)寫入接口,將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件寫入到相應(yīng)的文件或數(shù)據(jù)庫中。
10.如權(quán)利要求9所述的裝置,其特征在于: 所述通用路徑存儲模塊,還用于在將所述發(fā)生變化事件的文件的路徑和與所述路徑對應(yīng)的變化事件進行數(shù)據(jù)持久化存儲時,判斷所述路徑是否為當(dāng)前路徑,如果是,則不存儲;如果不是,則將該路徑存儲,并標(biāo)記為當(dāng)前路徑。
【文檔編號】G06F21/57GK103699846SQ201310728887
【公開日】2014年4月2日 申請日期:2013年12月25日 優(yōu)先權(quán)日:2013年12月25日
【發(fā)明者】王旭, 張道偉 申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
无极县| 新乡市| 达孜县| 宁晋县| 海门市| 江都市| 兰州市| 琼结县| 呈贡县| 彩票| 独山县| 理塘县| 光泽县| 当阳市| 罗源县| 娄底市| 三亚市| 永靖县| 左贡县| 龙海市| 岢岚县| 新营市| 张家口市| 本溪| 大竹县| 都安| 黔江区| 高台县| 定陶县| 新平| 象州县| 临夏县| 郸城县| 河南省| 麻城市| 梅州市| 綦江县| 改则县| 福清市| 日喀则市| 名山县|