我安装了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将新文件从监控目录复制到另一个位置。
感谢任何提示和想法尝试。
答案 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 &