一種文件監(jiān)控方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于文件監(jiān)控領(lǐng)域,尤其涉及一種文件監(jiān)控方法及系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中的文件監(jiān)控系統(tǒng)Fanot ify有三個(gè)基本的模式:directed模式、per-mount模式、global模式;其中,directed模式直接工作在被監(jiān)控對(duì)象的索引節(jié)點(diǎn)inode上,一次只可以監(jiān)控一個(gè)對(duì)象,因此無(wú)法監(jiān)控大量目標(biāo);global模式則監(jiān)控整個(gè)文件系統(tǒng),對(duì)于文件系統(tǒng)的變化,及時(shí)通知監(jiān)管客戶端,殺毒軟件便工作在這種模式下;per-mount模式工作在掛載點(diǎn)即mount點(diǎn)上,比如磁盤(pán)/dev/sda2的mount點(diǎn)在/home,則/home目錄下的所有文件系統(tǒng)變化都可以被監(jiān)控,這可以被看作另外一種global模式。
[0003]圖1所示為現(xiàn)有技術(shù)中的文件監(jiān)控事件原理圖,包括運(yùn)行文件打開(kāi)應(yīng)用程序Open O,則文件監(jiān)控系統(tǒng)獲得一個(gè)事件打開(kāi)的通知;運(yùn)行文件寫(xiě)入應(yīng)用程序Write O,則文件監(jiān)控系統(tǒng)獲得一個(gè)事件寫(xiě)入的通知;運(yùn)行文件關(guān)閉應(yīng)用程序Close O,則文件監(jiān)控系統(tǒng)獲得一個(gè)事件關(guān)閉的通知。
[0004]文件監(jiān)控系統(tǒng)Fanotify可以監(jiān)控某個(gè)目錄下的直接子節(jié)點(diǎn)(例如:可以監(jiān)控目錄/home和它的直接子節(jié)點(diǎn),比如:/home/fool,/home/foo2等都可以被監(jiān)控);但是無(wú)法監(jiān)控直接子節(jié)點(diǎn)下的節(jié)點(diǎn)(例如:/home/pics/fool就無(wú)法被監(jiān)控了,因?yàn)?home/pics/fool不是/home的直接子節(jié)點(diǎn))。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種文件監(jiān)控方法及系統(tǒng),以解決上述問(wèn)題。
[0006]本發(fā)明提供一種文件監(jiān)控方法。上述方法包括以下步驟:
[0007]文件監(jiān)控設(shè)備獲取文件訪問(wèn)設(shè)備訪問(wèn)的文件信息;
[0008]所述文件監(jiān)控設(shè)備根據(jù)被訪問(wèn)文件信息,確定所述被訪問(wèn)文件對(duì)應(yīng)的監(jiān)控模式并在所述監(jiān)控模式下對(duì)所述被訪問(wèn)文件進(jìn)行監(jiān)聽(tīng);其中,所述監(jiān)控模式包括直接模式、節(jié)點(diǎn)模式、全局模式。
[0009]本發(fā)明還提供一種文件監(jiān)控系統(tǒng),包括文件訪問(wèn)設(shè)備、文件監(jiān)控設(shè)備、監(jiān)聽(tīng)設(shè)備;其中,所述文件訪問(wèn)設(shè)備通過(guò)所述文件監(jiān)控設(shè)備與所述監(jiān)聽(tīng)設(shè)備相連;所述文件監(jiān)控設(shè)備包括模式管理模塊、文件監(jiān)聽(tīng)模塊、事件通知處理模塊;其中,所述模式管理模塊通過(guò)所述文件監(jiān)聽(tīng)模塊與所述事件通知處理模塊相連。
[0010]通過(guò)以下方案:一種文件監(jiān)控系統(tǒng),包括文件訪問(wèn)設(shè)備、文件監(jiān)控設(shè)備、監(jiān)聽(tīng)設(shè)備;其中,所述文件訪問(wèn)設(shè)備通過(guò)所述文件監(jiān)控設(shè)備與所述監(jiān)聽(tīng)設(shè)備相連;所述文件監(jiān)控設(shè)備包括模式管理模塊、文件監(jiān)聽(tīng)模塊、事件通知處理模塊;其中,所述模式管理模塊通過(guò)所述文件監(jiān)聽(tīng)模塊與所述事件通知處理模塊相連;不僅實(shí)現(xiàn)了對(duì)各級(jí)文件事件的監(jiān)控;而且模塊化設(shè)計(jì)的方案使得功能拆分和擴(kuò)展更加方便。
[0011]通過(guò)以下方案:所述文件信息包括文件類(lèi)型、文件重要性級(jí)別、文件操作狀態(tài)、文件所處目錄層級(jí)及位置信息;實(shí)現(xiàn)了針對(duì)不同文件設(shè)置不同監(jiān)控模式,節(jié)約系統(tǒng)監(jiān)控資源,提高了系統(tǒng)監(jiān)控效率。
[0012]通過(guò)以下方案:所述文件監(jiān)控設(shè)備中的事件通知處理模塊對(duì)被訪問(wèn)文件的被訪問(wèn)事件進(jìn)行處理后,通知所述監(jiān)聽(tīng)設(shè)備;使得監(jiān)管方能及時(shí)處理異常事件,大大提升了系統(tǒng)安全性和穩(wěn)定性。
【附圖說(shuō)明】
[0013]此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0014]圖1所示為現(xiàn)有技術(shù)中的文件監(jiān)控事件原理圖;
[0015]圖2所示為本發(fā)明實(shí)施例1的文件監(jiān)控系統(tǒng)結(jié)構(gòu)圖;
[0016]圖3所示為本發(fā)明實(shí)施例2的文件監(jiān)控方法處理流程圖。
【具體實(shí)施方式】
[0017]下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0018]圖2所示為本發(fā)明實(shí)施例1的文件監(jiān)控系統(tǒng)結(jié)構(gòu)圖,包括文件訪問(wèn)設(shè)備、文件監(jiān)控設(shè)備、監(jiān)聽(tīng)設(shè)備;其中,所述文件訪問(wèn)設(shè)備通過(guò)所述文件監(jiān)控設(shè)備與所述監(jiān)聽(tīng)設(shè)備相連;
[0019]所述文件監(jiān)控設(shè)備包括模式管理模塊、文件監(jiān)聽(tīng)模塊、事件通知處理模塊;其中,所述模式管理模塊通過(guò)所述文件監(jiān)聽(tīng)模塊與所述事件通知處理模塊相連。
[0020]所述模式管理模塊,用于判斷被訪問(wèn)文件的監(jiān)控模式;其中,所述監(jiān)控模式包括直接模式、節(jié)點(diǎn)模式、全局模式;還用于對(duì)文件監(jiān)控系統(tǒng)采用的監(jiān)控模式進(jìn)行統(tǒng)一管理。
[0021]另外,根據(jù)文件類(lèi)型不同,所述模式管理模塊可以設(shè)置對(duì)應(yīng)的監(jiān)控模式,例如:對(duì)于操作系統(tǒng)類(lèi)文件(包括:安裝操作系統(tǒng)文件、升級(jí)操作系統(tǒng)文件等),設(shè)置全局模式進(jìn)行監(jiān)控;對(duì)于日志類(lèi)文件(主要用于日志記錄的文件),設(shè)置節(jié)點(diǎn)模式進(jìn)行監(jiān)控;對(duì)于應(yīng)用類(lèi)文件(例如:Word、PPT等文件),設(shè)置直接模式進(jìn)行監(jiān)控。
[0022]另外,還可以文件重要性級(jí)別不同,所述模式管理模塊可以設(shè)置對(duì)應(yīng)的監(jiān)控模式,例如:文件重要性級(jí)別為高級(jí)時(shí),設(shè)置全局模式進(jìn)行監(jiān)控;文件重要性級(jí)別為中級(jí)時(shí),設(shè)置節(jié)點(diǎn)模式進(jìn)行監(jiān)控;文件重要性級(jí)別為低級(jí)時(shí),設(shè)置直接模式進(jìn)行監(jiān)控。
[0023]進(jìn)一步地,所述直接模式是直接工作在被監(jiān)控文件對(duì)象的節(jié)點(diǎn)上,相比于其他的模式,它只能每次監(jiān)控一個(gè)文件對(duì)象;所述節(jié)點(diǎn)模式是工作在某個(gè)掛載點(diǎn)即mount點(diǎn)上,比如/home,那么/home目錄下的所有文件系統(tǒng)的變化都會(huì)被實(shí)時(shí)的監(jiān)控,對(duì)于其它的mount點(diǎn),則不會(huì)被監(jiān)控;所述全局模式是對(duì)所有文件全局監(jiān)控的模式,包括系統(tǒng)文件和非系統(tǒng)文件。
[0024]所述文件監(jiān)聽(tīng)模塊主要對(duì)文件進(jìn)行有效監(jiān)控,監(jiān)聽(tīng)各種文件變化事件,例如:包括文件打開(kāi)事件、文件寫(xiě)入事件、文件刪除事件。
[0025]所述事件通知處理模塊主要對(duì)文件監(jiān)聽(tīng)結(jié)果進(jìn)行解析處理;還用于對(duì)處理的事件進(jìn)行通知。
[0026]進(jìn)一步地,所述文件監(jiān)控設(shè)備中的文件監(jiān)聽(tīng)模塊,用于從所述模式管理模式中獲取被訪問(wèn)文件的監(jiān)控模式后,監(jiān)聽(tīng)記錄被訪問(wèn)文件事件。
[0027]所述文件監(jiān)控設(shè)備中的文件監(jiān)聽(tīng)模塊從所述模式管理模式中獲取被訪問(wèn)文件的監(jiān)控模式的方法包括:
[0028]所述模式管理模式獲取被訪問(wèn)文件的監(jiān)控模式后,直接發(fā)