我正在做一個目錄監控項目。我會編寫一個bash腳本來計算目錄的md5checksum,並存儲該變量以供以後比較。這個腳本必須由cronjob運行,並且如果所述變量與先前設置的變量不匹配,將執行一個命令。如何用Bash監控目錄?
當我運行
echo -n /path/to/directory | md5sum
我敢肯定,它僅計算字符串的MD5「路徑/ /到/目錄」,而不是目錄本身。
這可能嗎?如果是這樣,那麼我該如何存儲該變量以供下一個腳本實例進行後續比較?
我正在做一個目錄監控項目。我會編寫一個bash腳本來計算目錄的md5checksum,並存儲該變量以供以後比較。這個腳本必須由cronjob運行,並且如果所述變量與先前設置的變量不匹配,將執行一個命令。如何用Bash監控目錄?
當我運行
echo -n /path/to/directory | md5sum
我敢肯定,它僅計算字符串的MD5「路徑/ /到/目錄」,而不是目錄本身。
這可能嗎?如果是這樣,那麼我該如何存儲該變量以供下一個腳本實例進行後續比較?
ls /path/to/directory | md5sum
怎麼樣?
然後我該如何存儲該變量以便以後通過腳本的下一個實例進行比較? 最簡單的解決方案將它存儲在一個文件中。
但它只涵蓋目錄的結構,而不是文件比賽(不清楚要求哪一個)。 * ls -l *可以用來替代,所以文件大小,權限和修改日期將被記入一個帳戶。 – KBart
md5sum
只處理文件,所以你將不得不產生一個文件名列表。 find
與-type f
參數是遞歸獲取目錄內容的好方法。
如果您將md5sum的輸出存儲在文件中,那麼您可以使用md5sum -c
來檢查哪些文件已更改。
您的問題可能會被類似的問題覆蓋:「我如何計算目錄的md5校驗和?」:http://stackoverflow.com/questions/1657232/how-can-i-calculate-an-md5 -checksum-of-directory – Mike
重複? http://stackoverflow.com/questions/6475252/bash-script-watch-folder-execute-command – Kent
你看過[incrond](http://inotify.aiken.cz/?section=incron&page=about&lang=en )? – Perleone