【发布时间】:2013-06-03 13:25:47
【问题描述】:
$logFile 大小为 20GB
$RAW_FILTER=pattern1|pattern2|pattern3|pattern4|pattern5|....upto Pattern M
$RAW_FILTER1=pattern6|pattern7|pattern8|pattern9|pattern10|...upto Pattern N
我的代码如下:
cat $logFile | egrep "$RAW_FILTER" >> $filesNeedToCheck &
cat $logFile | egrep "$RAW_FILTER1" >> $filesNeedToCheck &
等待
还有其他更快的选择吗? 非常感谢任何帮助。
【问题讨论】:
-
根据创建日志文件的服务器上的负载,您是否可以尾随 -f 日志并将其通过管道传输到 egrep 以便在写入原始日志文件时“实时”创建 $filesNeedToCheck?
-
我无法实时挖掘日志。所以 tail 对我来说不是一个选择。
-
提高速度的一个想法是放弃Useless Use of Cat。它看起来非常低效。另一个想法是实际显示您正在使用的正则表达式,以便我们查看它们是否效率低下。
-
不是内存而是
multiple file read/seeks并行运行时,可能由于存储速度限制,处理速度会更慢。