【awk】按小时切割日志
需求:
把日志按日志内容中的小时数做切割
{hostname=ali-beijing-msync-3512} 2017-05-17 23:17:52.694 [info] <0.27292.7053>@msync_c2s_lib:delete_pb_jid_entry:266 delete pb jid {'JID',<<"17zuoye">>
{hostname=ali-beijing-msync-3513} 2017-05-17 23:17:52.694 [info] <0.27292.7053>@msync_c2s_lib:delete_socket_entry:164 delete socket #Port<0.34411764>
这种字符处理的工作非sed,awk莫属了
下面是我用awk完成的单行代码
awk --re-interval
'/^\{[^ ]+\} [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}/{ # 一定要清楚的知道正常的日志是什么样子,因为日志中不排除有异常栈之类的错误信息,这就导致awk异常
fn=gensub(/[^ ]+ ([-]{})-([-]{})-([-]{}) ([-]{}):[-]{}:[-]{}\.[-]+ .*/,"\\1\\2\\3\\4","g"); #gensub提取你需要的信息
if(fn != lastdate){
if(lastdate != "") close(outfile) #及时关闭上一个文件
};
lastdate=fn;
outfile=sprintf("ejabberd-login-log_%s",fn); #你需要生成的日志文件名
print >> outfile}'
【awk】按小时切割日志的更多相关文章
- Logrotate实现Catalina.out日志每俩小时切割
一.Logrotate工具介绍 Logrotate是一个日志文件管理工具,它是Linux默认自带的一个日志切割工具.用来把旧文件轮转.压缩.删除,并且创建新的日志文件.我们可以根据日志文件的大小.天数 ...
- Awk使用及站点日志分析
Awk使用及站点日志分析 Awk简单介绍 概述 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入, ...
- linux服务器自动切割日志
需求 由于nginx的日志会不停地增大,所以需要我们自己去切割日志,方便管理,需要达到以下的效果: 按日期自动切割日志,最小单位是天. 当日志总量超过一定量时,自动直接清理日志,限定总量不能超过100 ...
- nginx 自动化定时切割日志
NG在默认情况下,是始终输出到一个日志文件中,日志文件在nginx.conf中 : access_log logs/www.access.log main; 一个文件中不是很方便查找,分析数据, ...
- nginx按天切割日志
原文链接:http://www.cnblogs.com/benio/archive/2010/10/13/1849935.html 本文只节选部分内容 Nginx自己没有日志分割的功能,一旦时间过长 ...
- Linux下配置Nginx按天切割日志
Nginx由于轻巧和高效的设计风格,去掉了一些额外的功能,所以它不像apache那样有自动切割日志. 建立一个脚本文件,并保证这个文件有可执行的权限:1.建立一个文件/root/log.nginx.s ...
- nginx切割日志脚本
nginx切割日志脚本 #!/bin/bash #cut nginx log #2018年9月26日14:26:44 #by jiajiezhao ########################## ...
- python 多线程日志切割+日志分析
python 多线程日志切割+日志分析 05/27. 2014 楼主最近刚刚接触python,还是个小菜鸟,没有学习python之前可以说楼主的shell已经算是可以了,但用shell很多东西实现起来 ...
- [Java][log4j]支持同一时候按日期和文件大小切割日志
依据DailyRollingFileAppender和RollingFileAppender改编,支持按日期和文件大小切割日志. 源文件: package com.bao.logging; impo ...
随机推荐
- 回文O(N)算法
[回文O(N)算法] 利用回文的对称性质,可以设计出O(N)的算法. 参考:http://blog.csdn.net/ggggiqnypgjg/article/details/6645824
- nginx反向代理同一主机多个网站域名
nginx反向代理同一ip多个域名,给header加上host就可以了 proxy_set_header Host $host; nginx.conf例子 upstream ...
- IDEA00 IDEA知识点汇总
一.从头搭建IDEA开发环境 https://mp.weixin.qq.com/s/6jXHzkU8JfubhDsQJbwl8Q 1 下载最新版IDEA 1.1 官网下载安装 1.2 专业版激活 2 ...
- day24,python习题
今日作业 有两个列表,分别存放来老男孩报名学习linux和python课程的学生名字 linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao'] pytho ...
- YUI前端优化之内容篇
Excetional Performance团队总结出了一系列可以提高网站速度的方法.可以分为7大类34条.包括内容.服务器.cookie.CSS.JavaScript.图片.移动应用等七部分.一.内 ...
- 怎样知道自己机器的出口网关IP(即外部IP)
方法一: 在浏览器中输入 : http://www.ip138.com/ 可以查到外部IP地址及地理位置 方法二: Just put in “where is my ip” in google t ...
- 关于Android控件EditText的属性InputType的一些经验,java组合多个参数
关于Android控件EditText的属性InputType的一些经验 2013-11-14 15:08:02| 分类: 默认分类|举报|字号 订阅 1.InputType属性在代码中 ...
- SpringBoot2.0WebFlux响应式编程知识总结
- git 上传项目
参考:https://blog.csdn.net/qq_28304687/article/details/69959238?fps=1&locationNum=8 第一部分 初次上传 1.先在 ...
- How do I determine if I'm being run under the debugger?
#include <assert.h>#include <stdbool.h>#include <sys/types.h>#include <unistd.h ...