博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在Linux上获取特定时间范围的日志?
阅读量:2517 次
发布时间:2019-05-11

本文共 1074 字,大约阅读时间需要 3 分钟。

The logs I am processing is log (log4j). It is in format like:

我正在处理的日志是日志(log4j)。 格式如下:

2014-09-20 21:55:11,855 INFO org.apache.hadoop.nfs.nfs3.IdUserGroup: Updated user map size: 362014-09-20 21:55:11,863 INFO org.apache.hadoop.nfs.nfs3.IdUserGroup: Updated group map size: 552014-09-20 22:10:11,907 INFO org.apache.hadoop.nfs.nfs3.IdUserGroup: Update now2014-09-20 22:10:11,907 INFO org.apache.hadoop.nfs.nfs3.IdUserGroup: Not doing static UID/GID mapping because '/etc/nfs.map' does not exist.

Now, I want to get all the logs with a specific time range, e.g. last 4 hours. How to achieve this?

现在,我想获取具有特定时间范围(例如最近4个小时)的所有日志。 如何实现呢?

It should be with command line since it is in an automatic routine which is invoked by crond every 4 hours.

应该使用命令行因为它处于crond每4小时调用一次的自动例程中。

You can use date to generate filtering rules to filter out the logs in a specific range:

您可以使用日期来生成过滤规则,以过滤出特定范围内的日志:

# grep out latest logecho "" >$tmplogfor ((i=4; i>=1; i--)); do    grep "^$(date -d -${i}hour +'%Y-%m-%d %H')" $log >> $tmplogdone
Answered by Eric Z Ma.
埃里克·马(Eric Z Ma)回答。

翻译自:

转载地址:http://cblwd.baihongyu.com/

你可能感兴趣的文章
数据访问-----ADO.NET 小结和练习
查看>>
Linux lsof详解
查看>>
子组件给父组件传数据
查看>>
unix/linux下的共享内存、信号量、队列信息管理
查看>>
Hilbert先生旅馆的故事
查看>>
采访吴岳师兄有感 by 王宇飞
查看>>
LVS简略介绍
查看>>
hdu 1021 Fibonacci Again
查看>>
JVM架构_XmnXmsXmxXss有什么区别:转
查看>>
PHPExcel 使用心得
查看>>
洛谷 P3374 【模板】树状数组 1(单点加,区间和)
查看>>
verilog 代码编写小记
查看>>
PyQT的安装和配置
查看>>
从 docker 到 runC
查看>>
守护进程
查看>>
php数组
查看>>
Linux 防火墙
查看>>
互联网金融P2P主业务场景自动化测试
查看>>
My third day of OpenCV
查看>>
Android的View和ViewGroup分析
查看>>