如何使用Shell進行檔案監控?

2021-10-12 07:10:32 字數 1299 閱讀 2477

檔案監控可以配合rsync實現檔案自動同步,例如監聽某個目錄,當檔案變化時,使用rsync命令將變化的檔案同步。(可用於**自動發布)

inotify 是linux核心的乙個特性,在核心 2.6.13 以上都可以使用。

如果在shell環境下,可以安裝 yum install inotify-tools,安裝以後有兩個命令可以用inotifywait 和 inotifywatch,inotifywait 是需要使用的命令。

監聽/usr/local/src 目錄:

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %h:%m' 

--format '%t %w %f %e' -e modify,delete,create,attrib  

/usr/local/src

引數:--format說明:

執行上面的命令之後,在監聽的目錄下建立乙個1.txt檔案,得到如下結果:

22/03/18 17:22 /usr/local/src/ 1.txt create 

22/03/18 17:22 /usr/local/src/ 1.txt attrib

這個指令碼的功能是迴圈監聽檔案或目錄的增刪改事件,當事件發生執行設定的指令碼檔案。

#!/bin/sh 

# 監視的檔案或目錄 

filename=$1 

# 監視發現有增、刪、改時執行的指令碼 

script=$2 

inotifywait -mrq --format '%e' --event create,delete,modify  $filename | while read event 

do case $event in modify|create|delete) bash $script ;; 

esac 

done

shell指令碼後台執行nohup使用nohup,其中test.sh為所執行的指令碼,out.txt為輸出資訊的地方。

nohup sh test.sh>out.txt &

如何使用 類進行檔案的 I O 處理

大多數 c 程式設計師都熟悉不止乙個檔案 i o 庫。首先是傳統的 unix 風格的庫,它由一些低階函式如 read 和 open 組成。其次是 ansi c 的 庫,它包含 fopen 和 fread 等函式。其它的還有一些具備所有權的庫或框架,比如 mfc,它有很多自己的檔案處理類。這些庫一般都...

Shell 入門教程(十六) 如何進行檔案判斷

檔案測試運算子用於檢測檔案的各種狀態和屬性,目前支援的運算子如下 要特別注意的是 s file判斷檔案是否為空時,不為空才返回true。變數 file 表示檔案 user chenshuyi hello.sh,它的大小為 52 位元組,具有 rwx 許可權。下面的 將檢測該檔案的各種屬性 bin b...

使用QFile進行檔案操作

qfile類我我們提供了操作檔案的常用功能。它是一種io裝置,可以用來讀寫文字檔案和二進位制檔案,也可以用來讀寫qt的資源檔案。qfile類可以單獨使用,該類本身提供了read write函式,但更方便的方式是,將qfile和qtextstream或qdatastream一起使用。一般情況下,使用q...