2013-02-06 72 views
0

我正在做一個目錄監控項目。我會編寫一個bash腳本來計算目錄的md5checksum,並存儲該變量以供以後比較。這個腳本必須由cronjob運行,並且如果所述變量與先前設置的變量不匹配,將執行一個命令。如何用Bash監控目錄?

當我運行

echo -n /path/to/directory | md5sum 

我敢肯定,它僅計算字符串的MD5「路徑/ /到/目錄」,而不是目錄本身。

這可能嗎?如果是這樣,那麼我該如何存儲該變量以供下一個腳本實例進行後續比較?

+1

您的問題可能會被類似的問題覆蓋:「我如何計算目錄的md5校驗和?」:http://stackoverflow.com/questions/1657232/how-can-i-calculate-an-md5 -checksum-of-directory – Mike

+0

重複? http://stackoverflow.com/questions/6475252/bash-script-watch-folder-execute-command – Kent

+0

你看過[incrond](http://inotify.aiken.cz/?section=incron&page=about&lang=en )? – Perleone

回答

0

ls /path/to/directory | md5sum怎麼樣?

然後我該如何存儲該變量以便以後通過腳本的下一個實例進行比較? 最簡單的解決方案將它存儲在一個文件中。

+0

但它只涵蓋目錄的結構,而不是文件比賽(不清楚要求哪一個)。 * ls -l *可以用來替代,所以文件大小,權限和修改日期將被記入一個帳戶。 – KBart

0

md5sum只處理文件,所以你將不得不產生一個文件名列表。 find-type f參數是遞歸獲取目錄內容的好方法。

如果您將md5sum的輸出存儲在文件中,那麼您可以使用md5sum -c來檢查哪些文件已更改。