inotify,inotify-tools
安裝inotify
安裝inotify-tools-3.14.tar.gz
解壓:
編譯安裝:
inotifywait:在被監控的檔案或目錄上等待特定檔案系統事件(open、close、delete等)發生,執行後處於阻塞轉態,適合在shell指令碼中使用。
inotifywatch:收集被監控的檔案系統使用度統計資料,指檔案系統事件發生的次數統計。
inotifywait命令常用參數
測試一:
視窗一:
視窗二:
測試二:
視窗一:
視窗二:
同時監控多個事件,事件之間用逗號分隔。
測試:
視窗一:
視窗二:
備份伺服器:
寫入rc.local
應用情境:10—300k小檔案並發200—300,不會有延遲。
關鍵參數說明:
在/proc/sys/fs/inotify目錄下有三個檔案,對inotify機制有一定的限制。
max_user_watches:設定inotifywait或inotifywatch命令可以監視的檔案數量(單進程)。
max_user_instances:設定每個使用者可以啟動並執行inotifywait或inotifywatch命令的進程數。
max_queued_events:設定inotify執行個體事件(event)隊列可容納的事件數目量。
每秒200個檔案並發,資料同步幾乎無延遲。
inotify優點:
即時資料同步。
inotify缺點:
1、並發如果大於200個檔案(10—100K),同步會有延遲。
2、監控到事件後,調用rsync同步是單進程的(加&並發),sersync多進程同步。
sersync的功能:
1、設定檔。
2、真正的守護進程socker。
3、可以對失敗檔案定時重傳(定時任務)。
4、第三方的http介面。
5、預設多線程同步。
高並發資料即時同步方案:
1、檔案層級:inotify(sersync)+rsync。
2、檔案系統層級:drbd。
3、第三方軟體的同步功能:mysql同步、oracle、mongodb。
4、程式雙寫。
5、商務邏輯解決。