Incron复制新文件

时间:2015-10-26 22:18:50

标签: incron

我安装了CentOS 7并运行了incrond。

据我所知,incrond服务可以监控/ var / www / html / uploads /并且如果上传了新文件 - 那么使用IN_CREATE我们可以做一些事情。在我的情况下,我想将这个新文件复制到目录/ var / www / html / uploads / new /

但是当我尝试使用incron工作时

/var/www/html/uploads/ IN_CREATE cp /var/www/html/uploads/new/

我没有结果。

我想我的原始示例是错误的,但我无法理解如何使用INCRON将新文件从监控目录复制到另一个位置。

感谢任何提示和想法尝试。

2 个答案:

答案 0 :(得分:3)

incron条目的语法是:

<path> <mask> <command>

如果你监视目录,那么$ @包含目录路径和$#触发事件的文件,但是如果你监视一个文件,那么你必须使用包含完整路径的$ @ $#。

在您的情况下,条目应如下所示:

/var/www/html/uploads/ IN_CREATE cp $@$# /var/www/html/uploads/new/

答案 1 :(得分:0)

我找到了更好的解决方案 Stackexchange使用INOTIFY。

第一

yum install inotify-tools

然后创建一个bash脚本,让我们说像dirmonit.sh

inotifywait -m /var/www/html/uploads/ -e create -e moved_to |
    while read path action file; do
        echo "The file '$file' appeared in directory '$path' via '$action'"
        # do something with the file
    cp /var/www/html/uploads/$file /var/www/html/uploads/new/$file
    done

并从shell背景开始

nohup sh /scripts/dirmonit.sh &