因此,在寻找一种方法来找出创建文件以启动副本的时候,我找到了inotifywait,但它似乎并没有为我工作。
我使用Redline转储远程计算机的内存,并拥有该脚本以便它可以找到正确的目录和文件,但是当我尝试设置inotifywait时,它只是挂起而且从不返回该文件已完成(我想知道该文件是否由Redline保持打开,直到它完成整个扫描,即使实际的内存图像已完成?)
我已经尝试了
inotifywait -m -e create fileName
和
inotifywait -m -e close_write fileName
但似乎都没有奏效。他们说手表是创造出来的,但是在文件没有被写入之后很久就会挂在那里。而且我不知道如何检查远程机器是否仍然在文件上打开句柄... cp当然仍然有效,而tail -f清楚地表明该文件没有被写入。是否有一个优雅的解决方案来通知我的脚本文件准备复制?
答案 0 :(得分:0)
你要求它永远不要退出:
-m, --monitor
Instead of exiting after receiving a single event, execute
indefinitely. The default behaviour is to exit after the
first event occurs.
等待无限期,尝试inotifywait -e close_write fileName
另一种方法是使用--timeout / -t
实现一个繁忙的循环,但假定连续数据输入:
while inotifywait -e modify -t 15 fileName; do
echo "something was written in the last 15 seconds"
done
echo "no activity for 15 seconds. done?"