如何高效的抓取进行日志截取
情景大概是这样子的,在一台主机上有文件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可以看到比较占用内存,怕影响生产性能。
请有经验的前辈指导下,谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
我看看,一直java开发...
现在不就是一行行的处理么?不明白你的意思。求解释〜~
写程序吧,用mmap
回复
你现在是把所有的文件拼在一起grep 内存显然占用更多啊,不过你的需求不是很明确啊,到底你是要更少的内存占用还是要更快的处理速度啊~
回复
你的意思是find . -name *0517*是把文件给拼接在一起然后再grep了么?先求速度。。
按行逐一遍历各个文件吧,内存占用会少一点~
怎么讲?用awk取行然后做匹配么?效率怎么样呢?
@gKiwi >=python的效率
awk处理应该不错