当前位置:  开发笔记 > 编程语言 > 正文

监视更改目录

如何解决《监视更改目录》经验,为你挑选了2个好方法。

就像一个类似的SO问题,我试图监视Linux机器上的目录以添加新文件,并希望在它们到达时立即处理这些新文件.有关实施此方法的最佳方法的任何想法?



1> Evi1M4chine..:

首先确保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"

或者,使用--format而不是-con inotifywait将是一个想法.

只是man inotifywaitman inotifywatch更多的相关信息.

您还可以incron使用它来调用处理脚本.



2> Douglas Leed..:

看看inotify.

使用inotify,您可以查看用于创建文件的目录.


Inotify不支持递归查看目录,这意味着必须为每个子目录创建单独的inotify监视.记住这一点.
推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有