很像similar SO question,我試圖監視Linux文件夾中的一個目錄以添加新文件,並且希望在這些新文件到達時立即處理這些新文件。任何想法實現這個最好的方式?更改監視器目錄
Q
更改監視器目錄
21
A
回答
23
看inotify。
隨着inotify,你可以看一個文件創建的目錄。
0
我想到的一個解決方案是創建一個「文件監聽器」,再加上一個cron作業。我對此並不着迷,但我認爲它可以奏效。
+0
如果您想盡快處理它們,則無法繞過inotify。 – 2009-02-04 14:20:13
0
fschange (Linux File System Change Notification)是一個完美的解決方案,但它需要修補你的內核
25
首先確保inotify-tools
的安裝。
然後使用它們像這樣:
logOfChanges="/tmp/changes.log.csv" # Set your file name here.
# Lock and load
inotifywait -mrcq $DIR > "$logOfChanges" &
IN_PID=$$
# Do your stuff here
...
# Kill and analyze
kill $IN_PID
while read entry; do
# Split your CSV, but beware that file names may contain spaces too.
# Just look up how to parse CSV with bash. :)
path=...
event=...
... # Other stuff like time stamps?
# Depending on the event…
case "$event" in
SOME_EVENT) myHandlingCode path ;;
...
*) myDefaultHandlingCode path ;;
done < "$logOfChanges"
另外,在使用inotifywait
代替--format
的-c
將是一個想法。
只需man inotifywait
和man inotifywatch
瞭解更多信息。
您也可以使用incron
並用它來調用處理腳本。
相關問題
- 1. AIX監視目錄更改
- 2. 更改監視目錄和子目錄
- 3. 監視文件更改目錄
- 4. CakePHP監視目錄的更改
- 5. 如何監視Windows目錄的更改?
- 6. 目錄修改監視
- 7. Oracle表更改監視器
- 8. 監視或記錄目錄權限更改?
- 9. 監控更改目錄列表?
- 10. 如何在Mac OS X上監視目錄中的更改?
- 11. 如何監視遠程目錄和文件的更改?
- 12. Grunt:監視文件更改並編譯父目錄
- 13. WCF服務來監視文件目錄更改
- 14. forever node.js - 監視目錄中的文件更改
- 15. 如何在Python中監視目錄中的更改?
- 16. 監視目錄中沒有第三方軟件包的更改
- 17. 監視文件或目錄中的更改?
- 18. delphi - 監視目錄中的文件更改 - 在JCL中實現?
- 19. 在Linux上監視文件更改的目錄
- 20. .Net WMI <Blah>更改事件以監視目錄
- 21. 使用Java 1.7中的WatchService監視目錄更改
- 22. 目錄監視器的c程序
- 23. WMI:監視器註冊表更改
- 24. JavaScript/jQuery:監視器更改爲元素?
- 25. 監視器會話更改事件c
- 26. jQuery監視器表的更改?
- 27. python:監視遠程目錄
- 28. 使用FileSystemWatcher監視目錄
- 29. 使用FileSystemWatcher監視目錄
- 30. JNDI:如何監視目錄服務器的更新
Inotify不支持遞歸觀察目錄,這意味着必須爲每個子目錄創建一個單獨的inotify監視。記住這一點。 – Jason 2013-12-10 17:07:07
另請參閱名爲[incron](http://inotify.aiken.cz/?section=incron&page=why)及其[手冊頁](http://linux.die.net/man/5/incrontab)的軟件包。我不確定它如何處理子文件夾。 – BeowulfNode42 2014-04-14 05:46:50
不,incron不處理子文件夾,它在一個適當的「indiegogo」運動中完全失敗,incron在2012年打瞌睡。悲傷,但它到達了一個盲巷。我真的希望,inotify會保持;-) – Frunsi 2014-10-26 00:53:17