自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

百寶箱中詳解Linux監(jiān)控技術(shù)

系統(tǒng) Linux
本篇給大家講解linux監(jiān)控技術(shù)的文件系統(tǒng)監(jiān)控,講到了Inotify文件系統(tǒng)事件監(jiān)控機(jī)制,Inotify是強(qiáng)大的異步的機(jī)制,安裝 inotify 的第一步是確定您使用的 Linux 內(nèi)核是否支持它。

linux經(jīng)過長時間的發(fā)展,很多用戶都很了解監(jiān)控方面的知識,今天給大家講解linux監(jiān)控技術(shù)的文件系統(tǒng)監(jiān)控,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

Inotify 是文件系統(tǒng)事件監(jiān)控機(jī)制,計(jì)劃包含在即將發(fā)布的 Linux 內(nèi)核中作為 dnotify 的有效替代。dnotify 是較早內(nèi)核支持的文件監(jiān)控機(jī)制。Inotify 是一種強(qiáng)大的、細(xì)粒度的、異步的機(jī)制,它滿足各種各樣的文件監(jiān)控需要,不僅限于安全和性能。下面讓我們一起學(xué)習(xí)如何安裝 inotify 和如何構(gòu)建一個示例用戶空間應(yīng)用程序來響應(yīng)文件系統(tǒng)事件。

文件系統(tǒng)事件監(jiān)控對于從文件管理器到安全工具的各種程序都是必要的,但是 dnotify(早期內(nèi)核中的標(biāo)準(zhǔn))存在一些局限性,這使我們期待出現(xiàn)一種更加完善的機(jī)制。抱著這種期待,我們發(fā)現(xiàn)了 inotify,一種更加現(xiàn)代化的文件系統(tǒng)事件監(jiān)控替代品。

為什么使用 inotify?
使用 inotify 取代 dnotify 的原因有很多。第一個原因是,dnotify 需要您為每個打算監(jiān)控是否發(fā)生改變的目錄打開一個文件描述符。當(dāng)同時監(jiān)控多個目錄時,這會消耗大量的資源,因?yàn)橛锌赡苓_(dá)到每個進(jìn)程的文件描述符限制。

除此之外,文件描述符會鎖定目錄,不允許卸載(unmount)支持的設(shè)備,這在存在可移動介質(zhì)的環(huán)境中會引發(fā)問題。在使用 inotify 時,如果正在監(jiān)控被卸載的文件系統(tǒng)上的文件,那么監(jiān)控會被自動移除并且您會接收到一個卸載事件。

dnotify 不如 inotify 的第二個原因是 dnotify 有點(diǎn)復(fù)雜。注意,使用 dnotify 基礎(chǔ)設(shè)施的簡單文件系統(tǒng)監(jiān)控粒度只停留于目錄級別。為了使用 dnotify 進(jìn)行更細(xì)粒度的監(jiān)控,應(yīng)用程序編程人員必須為每個受linux監(jiān)控技術(shù)的目錄保留一個 stat 結(jié)構(gòu)的緩存。該用戶空間的 stat 結(jié)構(gòu)緩存需要用來明確確定當(dāng)接收到通知信號時目錄發(fā)生了什么變化。當(dāng)獲得通知信號時,生成 stat 結(jié)構(gòu)列表并與最新的狀態(tài)相比較。顯而易見,這種技術(shù)是不理想的。

inotify 的另一個優(yōu)點(diǎn)是它使用文件描述符作為基本接口,使應(yīng)用程序開發(fā)者使用 select 和 poll 來監(jiān)控設(shè)備。這允許有效的多路 I/O 和與 Glib 的 mainloop 的集成。相反,dnotify 所使用的信號常常使程序員頭疼并且感覺不太優(yōu)雅。

inotify 通過提供一個更優(yōu)雅的 API 解決了這些問題,該 API 使用最少的文件描述符,并確保更細(xì)粒度的監(jiān)控。與 inotify 的通信是通過設(shè)備節(jié)點(diǎn)提供的?;谝陨显?,對于監(jiān)控 Linux 2.6 平臺上的文件,inotify 是您最明智的選擇。

安裝 inotify
安裝 inotify 的第一步是確定您使用的 Linux 內(nèi)核是否支持它。檢查發(fā)行版的最簡單方法是,尋找是否存在 /dev/inotify 設(shè)備。如果存在該設(shè)備,您可以跳到 在簡單應(yīng)用程序中使用 inotify 一節(jié)。

在撰寫本文時,inotify 包含在 Andrew Morton 的 Linux 2.6-mm 目錄樹中,而且一些 Linux 發(fā)行版正在提供支持 inotify 的內(nèi)核(包括 Gentoo 和 Ubuntu)或者具有提供支持的補(bǔ)充內(nèi)核包(例如 Fedora 和 SuSE)。因?yàn)?Andrew 可能會根據(jù)需要從目錄樹刪除對 inotify 的支持,并且 inotify 版本還處于頻繁的開發(fā)階段,所以強(qiáng)烈建議您從頭開始打補(bǔ)丁。如果缺少該設(shè)備,您可能需要對內(nèi)核打補(bǔ)丁并創(chuàng)建該設(shè)備。

以上給大家講解linux監(jiān)控技術(shù)的文件系統(tǒng)監(jiān)控。

責(zé)任編輯:薛輩輩 來源: linux
相關(guān)推薦

2009-10-28 13:54:38

linux安裝顯卡驅(qū)動

2015-09-22 15:24:27

SDNDocker

2015-09-22 16:11:41

SDNDocker

2009-10-28 18:35:10

Linux基礎(chǔ)用戶

2011-04-13 09:40:27

2009-11-05 11:12:21

WCF自宿主

2009-10-27 13:14:35

VB.NET窗體應(yīng)用

2009-10-28 09:48:31

VB.NET XmlR

2009-11-09 11:31:47

WCF消息隊(duì)列

2009-10-28 14:51:33

VB.NET設(shè)計(jì)制作窗

2009-11-03 16:17:39

ADO.NET Ent

2025-04-17 08:28:13

2009-10-27 15:42:04

VB.NET文件對象

2009-11-16 14:52:16

PHP數(shù)組

2009-11-12 14:18:19

ADO.NET分頁

2009-11-03 16:57:34

ADO.NET FAQ

2009-11-18 18:18:10

PHP Web查詢數(shù)據(jù)

2010-12-07 15:05:27

IT技術(shù)周刊

2016-01-14 14:17:51

密碼管理密碼分析安全工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號