用sed截取时间段内的程序日志

一、sed查看某时间段到现在的系统日志:

sed  -n  ‘/May 20 17/,$p‘   /var/log/messages  |  less

二、sed 截选时间段日志

首先看一下日志的格式:

2010-11-17 09:25:55,606 [catalina-exec-74] INFO org.springframework.jdbc.datasource.JdbcTransactionObjectSupport  - JDBC 3.0 Savepoint class is available
2010-11-17 09:25:55,658 [catalina-exec-74] WARN org.hibernate.util.JDBCExceptionReporter  - SQL Error: 0, SQLState: null
2010-11-17 09:25:55,606 [catalina-exec-74] INFO org.springframework.jdbc.datasource.JdbcTransactionObjectSupport  - JDBC 3.0 Savepoint class is available2010-11-17 09:25:55,658 [catalina-exec-74] WARN org.hibernate.util.JDBCExceptionReporter  - SQL Error: 0, SQLState: null

……

ession for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection

at org.springframework.util.ReflectionUtils.handleReflectionException(ReflectionUtils.Java:58)

at com.lottery.common.action.CommonAction.init(CommonAction.java:110)

2010-11-17 09:28:08,227 [main] INFO org.springframework.web.filter.CharacterEncodingFilter – Initializing filter ‘CharacterEncodingFilter’

根据日志格式,需要将11-17的09:25:55 和09:28:08 之间的日志截取出来,。

使用sed命令如下:

sed -n ‘/2010-11-17 09:25:55/,/2010-11-17 09:25:55/p’  logfile

这样可以精确地截取出来某个时间段的日志。

但是问题又来了,由于日志文件巨大,不能去vi打开文件。

根据之前看到过的日志格式,使用正则表达式。

sed -n ‘/2010-11-17 09:[0-9][0-9]:[0-9][0-9]/,/2010-11-17 16:[0-9][0-9]:[0-9][0-9]/p’  logfile

要是指定特定时间段内日志信息的提取会简单的多,如下
sed -n ‘/15:32:30/,/16:12:09/p‘ access_log

如果没有问题的话,上面就能筛选出指定的时间段的日志。

时间: 2024-10-08 16:19:26

用sed截取时间段内的程序日志的相关文章

hadoop中的hive查询cdn访问日志指定时间段内url访问次数最多的前10位(结合python语言)

hadoop环境描述: master节点:node1 slave节点:node2,node3,node4 远端服务器(python连接hive):node29 需求:通过hive查询到cdn日志中指定时间段内url访问次数最多的前10个url ps:用pig查询可以查询文章: http://shineforever.blog.51cto.com/1429204/1571124 说明:python操作远程操作需要使用Thrift接口: hive源码包下面自带Thrift插件: [[email pr

在linux服务器下日志提取的python脚本(实现输入开始时间和结束时间打包该时间段内的文件)

1.需求:近期在提取linux服务器下的日志文件时总是需要人工去找某个时间段内的日志文件,很是枯燥乏味,于是乎,我就想着用python结合linux指令来写一个日志提取的脚本,于是就有了以下脚本文件: 2.代码:getlogzip.py 1 import time,sys,os 2 3 filename1 = time.strftime('%m%d',time.localtime(time.time())) 4 filename2 = "log" 5 servername = inpu

sed截取连接数升高时的慢日志

sed -n '/15:32:30/,/16:12:09/p' access_log >log.txt sed截取某段时间,并重定向到一个新文件

Java判断一个时间是否在另一个时间段内

需求:当时间在凌晨0点至0点5分之间程序不执行. 也就是实现判断当前时间点是否在00:00:00至00:05:00之间 方法: Java代码 : /** * 判断时间是否在时间段内 * * @param date * 当前时间 yyyy-MM-dd HH:mm:ss * @param strDateBegin * 开始时间 00:00:00 * @param strDateEnd * 结束时间 00:05:00 * @return */ public static boolean isInDat

如何快速截取某段时间内的日志

在排除故障时,需要分析发生故障的原因,避免再次出现同样的问题,需要对日志进行分析,截取故障前后时间段的日志.通常用正则表达式来获取某段时间的内的日志,比较繁琐.可以通过awk方便简捷的实现. 我这里以截取nginx访问日志为例: 查看21/Jul/2014:14:37:50到21/Jul/2014:14:38:00时间段内bbs.ttlsa.com的访问日志. 1 # cat bbs.ttlsa.com.access.log | awk '$4 >="[21/Jul/2014:14:37:

分析时间段内对表的操作次数

分析某个时间段内,表的select.insert.update.delete次数.需要用到percona-toolkit包中的一个工具pt-query-digest,脚本如下: [[email protected] ~]# cat get_list.sh  #!/bin/bash set -x #slow_file=ai-db1-slow.log slow_file=$1 if [ $# != 1 ] ; then      echo "USAGE: $0 slow.log"     

工程实践:如何规范地打印程序日志?

工程实践:如何规范地打印程序日志? 很久之前,有个朋友问我,如果一个老项目让你接手去进行后续维护,你会先从哪里入手.让自己更快地上手项目?当时我没有特别正面去回答这个朋友的问题,我说:一个老项目是否容易上手,一个非常关键的地方就是这个项目的日志是否打得足够好.因为通常来说,一个老项目相对比较稳定了,后续大概率不会有比较大的变更和改动,那么对于这样的项目,核心就是“维稳”.但是任何人都无法保证项目在线上运行时不会出线上故障,在出现线上问题或者故障时,如何快速止损就是第一要义,而日志在止损过程中就扮

slq获取某一时间段内的全部数据

条件:根据数据库原有某一时间段数据,获取在筛选时间段内的全部数据信息: 通过分析在这筛选时间段的数据可大体分为以下3种情况: 数据库某字段的开始时间在筛选的开始时间与结束时间范围内 数据库某字段的结束时间在筛选的开始时间与结束时间范围内 数据库某字段的开始时间小于筛选的开始时间,结束时间大于筛选的结束时间 转化为sql语句为: ((startDate between '筛选开始时间' and '筛选结束时间') or (endDate between '筛选开始时间' and '筛选结束时间')

帆软报表查询时间段内的月份

用帆软报表做统计时,经常要用到查询时间段内的月份.sql如下(oracle): SELECT TO_CHAR(ADD_MONTHS(TO_DATE('${STARTTIME}', 'YYYY-MM'), ROWNUM - 1),'yyyy-MM') eDate, TO_CHAR(ADD_MONTHS(TO_DATE('${STARTTIME}', 'YYYY-MM'), ROWNUM - 1),'MM') DAY_ID, TO_CHAR(ADD_MONTHS(TO_DATE('${STARTTI