Linux之了解inotify監聽檔案變化機制

2021-09-11 01:49:05 字數 926 閱讀 2466

在日常的運維過程中,經常需要備份某些檔案,或者對系統的某些檔案進行監控,比如重要的配置檔案等。如果需要作到實時同步或者監控,就需要使用核心的inotify機制

inotify 是基於inode級別的檔案系統監控技術,是一種強大的、細粒度的、非同步的機制,它滿足各種各樣的檔案監控需要,不僅限於安全和效能

inotify主要功能:是乙個核心用於通知使用者空間程式檔案系統變化的機制。

注:上面所說的檔案也包括目錄

對於上述一些事件的說明:

當檔案的元資料(比如,許可權,所有權,鏈結計數,擴充套件屬性,使用者id,或組id等)改變時,會發生in_attrib事件

刪除受監控物件時會發生in_delete_self

重新命名物件時會發生in_more_self事件

in_oneshot 允許只監控pathname的乙個事件,事件發生後,監控項會自動從監控列表消失

看看是否有 /proc/sys/fs/inotify/目錄,以確定核心是否支援inotify

[root@mail ~]# ll /proc/sys/fs/inotify/

total 0

-rw-r--r--1 root root 0 apr 20 23:24 max_queued_events

-rw-r--r--1 root root 0 apr 20 23:24 max_user_instances

-rw-r--r--1 root root 0 apr 20 23:24 max_user_watches

檔案說明:

注意: max_queued_events 是 inotify 管理的佇列的最大長度,檔案系統變化越頻繁,這個值就應該越大。

如果你在日誌中看到event queue overflow,說明max_queued_events太小需要調整引數後再次使用。

Linux程式設計基礎之inotify機制簡析

本文實現乙個inotify的小例子,功能 指定乙個目錄,當目錄中建立檔案或者刪除檔案時,把相應的通知資訊列印出來。一 inotify機制和api 1 inotify機制 inotify可以用來監視檔案系統的變化,它不僅可以監視檔案的變化,還可以監視資料夾的變化。當有變化發生時,它就會返回相應的變化事...

linux下inotify的使用

有時候我們需要檢測某個目錄下檔案或者子目錄的改動狀況,如新增 刪除 以及更新等,linux系統上提供了inotify來完成這個功能。inotify是在版本2.6.13的核心中首次出現,現在的發行本應該都包含這個系統呼叫了。下面的描述中的檔案如無特別說明包括檔案以及目錄 使用inotify的第一步就是...

linux開發 檔案監控 inotify

從linux 2.6.13開始引入inotify來監控檔案,代替舊的dnotify。因此舊版本的glibc並不提供inotify系統呼叫的封裝。標頭檔案 sys inotify int inotify init 建立乙個inotify例項,並返回乙個引用inotify例項檔案描述符,檔案描述符使用c...