Linux下查看指定时间范围的Tomcat日志文件catalina.out

分类: Linux 评论(15) 4080 阅读 2017-08-30 10:36 ZooM查看

摘要 当Tomcat运行时间长了,有时候需要定位前几天某一个时间范围内的日志输出,而catalina.out文件使用普通的 tail -n 已经不能很方便的查看,这时候需要使用sed命令查找匹配文件
Linux Tomcat

项目上的catalina.out已经好几百兆了,没有配置让其根据日期每天生成文件;今天突然需要查询几天前7:40-7:45之间的日志,定位设置的定时器是否有问题。


通常我们常用的命令就是:

#
tail -n 3000 catalina.out

但是这里明显不合适了,那有没有根据时间范围筛选指定区域打印的log的命令呢?答案肯定是有的就是sed命令。


sed命令


sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。


选定行的范围(逗号 ,)

# 从 2017-08-26 07:40 起 到 2017-08-26 09:00 结束
sed -n '/2017-08-26 07:40:/,/2017-08-26 09:00:/p'

# 
p:打印模板块的行


这样就能筛选出符合要求的数据,而为了方便我们可以把这些数据单独生成文件

# 输出日志文件到 新文件
sed -n '/2017-08-26 07:40:/,/2017-08-26 09:00:/p' catalina.out > catalina.out.20170826.log


拥有这个命令就可以很方便定位到我们想看到的具体地方,是不是很方便呢?

QQ联系作者 微信联系作者
评论15
提交评论

关  于

该站属于个人博客,技术架构: JFinal + Beetl + Bootstrap

功能以后会继续完善……

QQ:841359731