等待日志文件空闲一段时间

时间:2017-04-05 14:25:51

标签: bash shell

假设我有一个file.log,并且在处理数据时会有一些过程将日志放在那里 我想等待处理数据 我怎么能编写简单的脚本来等待进程停止填充日志文件3分钟?

1 个答案:

答案 0 :(得分:1)

我假设您要等到文件的修改日期过去至少是某个设定金额的时间。

使用通常的Unix工具,我们可以使用find -mmin来测试文件是否足够老,并循环直到它:

while tmp=$(find -name filename -mmin +3) ; [ -z "$tmp" ] ; do 
    sleep 10
done

假设find最多可以匹配一个文件,如果文件太小,输出将为空,并且循环重复。

在Linux上,您还可以使用inotifywait在文件关闭时立即收到通知,但这只有在只有一个进程写入时才有效,并且它不会关闭并重新启动工作时打开它。