3

我有安装并运行 incrond 的 CentOS 7。

据我了解,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 将新文件从监视目录复制到另一个位置。

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

4

2 回答 2

4

incron 条目的语法是:

<path> <mask> <command>

如果您监视目录,则 $@ 包含目录路径和 $# 触发事件的文件,但如果您监视文件,则必须使用包含完整路径的 $@$#。

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

/var/www/html/uploads/ IN_CREATE cp $@$# /var/www/html/uploads/new/
于 2015-11-24T11:00:31.897 回答
0

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

第一的

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

并从外壳背景开始

nohup sh /scripts/dirmonit.sh &
于 2015-10-29T10:08:24.647 回答