假设我有一个file.log
,并且在处理数据时会有一些过程将日志放在那里
我想等待处理数据
我怎么能编写简单的脚本来等待进程停止填充日志文件3分钟?
答案 0 :(得分:1)
我假设您要等到文件的修改日期过去至少是某个设定金额的时间。
使用通常的Unix工具,我们可以使用find -mmin
来测试文件是否足够老,并循环直到它:
while tmp=$(find -name filename -mmin +3) ; [ -z "$tmp" ] ; do
sleep 10
done
假设find
最多可以匹配一个文件,如果文件太小,输出将为空,并且循环重复。
在Linux上,您还可以使用inotifywait
在文件关闭时立即收到通知,但这只有在只有一个进程写入时才有效,并且它不会关闭并重新启动工作时打开它。