很像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. 如何监视Windows目录的更改?
- 4. 目录修改监视
- 5. Oracle表更改监视器
- 6. 监控更改目录列表?
- 7. 如何在Mac OS X上监视目录中的更改?
- 8. .Net WMI <Blah>更改事件以监视目录
- 9. 如何监视远程目录和文件的更改?
- 10. forever node.js - 监视目录中的文件更改
- 11. delphi - 监视目录中的文件更改 - 在JCL中实现?
- 12. 监视文件或目录中的更改?
- 13. 如何在Python中监视目录中的更改?
- 14. 目录监视器的c程序
- 15. JavaScript/jQuery:监视器更改为元素?
- 16. jQuery监视器表的更改?
- 17. 使用FileSystemWatcher监视目录
- 18. python:监视远程目录
- 19. 不再监视SVN目录
- 20. 使用FileSystemWatcher监视目录
- 21. Java:在远程Linux服务器上监听目录更改
- 22. 监视文件更改
- 23. 监视文件的更改
- 24. 更改目录
- 25. 更改目录
- 26. 更改目录
- 27. 使用.NET框架监视目录中文件更改的可靠方法
- 28. 在没有fsevent的情况下监视OSX中的更改目录
- 29. 使用kqueue()监视目录中的更改的最佳方法是什么?
- 30. 如何在Linux中监视完整的目录树以进行更改?
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