如何高效的抓取进行日志截取

gKiwi 发布于 2013/05/17 13:14
阅读 1K+
收藏 1

情景大概是这样子的,在一台主机上有文件abc_01_20130517.log , abc_02_20130517.log , abc_03_20130517.log类似格式的多个日志文件。现在需要根据其他部门提供的流水号tranid进行日志检索。以前的处理方法:将tranid一行一个写入文件tranid.list里面,然后在脚本里面遍历流水,用脚本:

#其中$li指流水
find . -name "*0517*" | xargs grep -an "$li"| tee -a chaoshi.baowen.log
来进行处理,但是比较慢。情景:

#文件大小(500M)
#文件个数(5个)
#流水(200个)

除了跑的慢外,就是top可以看到比较占用内存,怕影响生产性能。
请有经验的前辈指导下,谢谢。

加载中
0
fzxu_05
fzxu_05
awk处理应该不错
fzxu_05
fzxu_05
@gKiwi >=python的效率
gKiwi
gKiwi
怎么讲?用awk取行然后做匹配么?效率怎么样呢?
0
kiwivip
kiwivip
按行逐一遍历各个文件吧,内存占用会少一点~
gKiwi
gKiwi
回复 @kiwivip : 你的意思是find . -name *0517*是把文件给拼接在一起然后再grep了么?先求速度。。
kiwivip
kiwivip
回复 @gKiwi : 你现在是把所有的文件拼在一起grep 内存显然占用更多啊,不过你的需求不是很明确啊,到底你是要更少的内存占用还是要更快的处理速度啊~
gKiwi
gKiwi
现在不就是一行行的处理么?不明白你的意思。求解释〜~
0
陈舵主
陈舵主
写程序吧,用mmap
gKiwi
gKiwi
我看看,一直java开发...
返回顶部
顶部