bash & inotify - 监控和移动文件
Posted
技术标签:
【中文标题】bash & inotify - 监控和移动文件【英文标题】:bash & inotify - monitoring and moving file 【发布时间】:2016-03-01 08:38:56 【问题描述】:我不是 Linux 的高级用户,但我正在寻找 bash 中的一些 简单脚本,它们将在 cron 或任何其他方式下运行,在 5-10 分钟内在 新目录/文件 已经上传到目录 脚本将在 新目录/文件 之后 寻找 新文件将包含文件的新目录移动到其他位置。
我发现 inotify 可以很好地解决这个问题,但问题是如何使用它。
【问题讨论】:
***.com/questions/4062806/inotify-how-to-use-it-linux 但我认为它与我的问题无关。我正在寻找将“新”文件移动到新位置的解决方案。 使用incron。它来自 inotify 的开发人员并为此目的而制作。无论如何,你的问题太宽泛了。 【参考方案1】:我一直在使用 inotifywait 来识别某些路径中发生了一些文件系统更改。
看看: http://linux.die.net/man/1/inotifywait
您可以指定您感兴趣的更改(删除、创建、修改等)以及脚本是应该输出它还是在更改后直接退出。
我一直在使用这个工具,我的脚本正在启动 inotifywait,当它存在时,执行一些操作并再次重新启动 inotifywait。
希望这会有所帮助。 马丁
【讨论】:
我根据互联网上的许多信息创建了类似的东西,但遗憾的是如何使用包含一些文件的目录。cd "$dir"
inotifywait -m -r -q -e close_write --format %f . | while IFS= read -r file;
do mv -p "$file" "$target"
echo "$file has been copied to the $target"
done
对不起,我不明白 - “如何使用包含一些文件的目录”?你什么意思?有什么问题?
再次确定。我有一些名为“uploaded”的目录,我想监视这个目录的一些更新。有时,此目录将包含文件和目录以及这些目录中的文件。 /uploaded/directory/file1.mpg /uploaded/directory/file2.txt /uploaded/directory2/file.avi /uploaded/directory3/file4.mpeg 然后这个文件应该用他自己的结构移动到新位置后,当所有操作上档完毕。 /moved/directory/file1.mpg /moved/directory/file2.txt /moved/directory2/file.avi /moved/directory3/file4.mpeg
为了维护文件结构,使用rsync怎么样?类似:while [ true ];做 inotifywait -m -r -q (其他选项) && rsync -ar /uploaded/ /moved/ ;完成linux.die.net/man/1/rsync以上是关于bash & inotify - 监控和移动文件的主要内容,如果未能解决你的问题,请参考以下文章