多个服务器日志的排序合并

时间:2007-03-17 17:46:38   来源:  作者:车东  点击:次  出处:技术无忧
关键字:日志 排序 合并

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
http://www.chedong.com/blog/archives/001280.html
--------------------------------------------------------------------------------
以前介绍过 sort -m <(/bin/zcat /web1/access_log.20070120.gz) <(/bin/zcat /web2/access_log.20070120.gz) 对多台服务器上的日志进行排序合并,但是最近发现有时候cronolog截取日志并不干净,就是说按天截断的时候,还是有可能出现几条跨天的日志记录。March 31 => April 1时候日志排序倒错的可能性还是存在的。

最近才知道知道sort 还有-M模式,是可以对有英文月份的字段进行排序的:
-M An initial string, consisting of any amount of white space, fol-
lowed by three letters abbreviating a month name, is folded to
UPPER case and compared in the order `JAN' < `FEB' < ... <
`DEC.' Invalid names compare low to valid names.

这样就不会在 March => April 的时候出现排序倒错的问题了。

更可靠的一个工具就是logtools中的:clfmerge,合并速度比较快,而且对于日志跨天也没有问题。

当然,还有一个思路:就是将在多台服务器上的日志实时udp发送到1台(或多台)集中的日志服务器上,这样就省略了排序合并的步骤。并且适合后台快速分发到其他服务器上进行统计。

欢迎收藏Pc51.Net技术无忧网


文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

特别推荐