`

使用shell命令查看分析日志(2)

阅读更多

目标:

查看日志文件中,所有空指针异常发生的位置,及前后10行,

前10行是为了看到请求的详细信息(接口 ,参数等),

后10行是为了查看异常发生的代码行号,定位代码bug.

 

命令:

grep -rnw "java.lang.NullPointerException" house_error.log |cut  -d ':' -f 1 |xargs -n1 -i expr  {} + 10 |xargs -i awk '{if(NR>={}-16 && NR<={})print NR":"$0;if(NR=={}) print "\n\n" }'  house_error.log

命令解释: 



 

命令执行结果:



 

 

awk 中:

$0:表示整行;
$1:表示以分隔符分割之后的第一个字段(域);
$2:表示以分隔符分割之后的第二个字段(域);
分隔符:默认是空格,换行,\Tab

 

awk的内置常量

在awk中有很多的系统变量,这些系统变量在我们编写awk脚本的时候会经常使用到,我现在将经常使用到的系统变量列举出来,并做简要说明。

变量名 描述 举例
$0 当前记录内容 awk '{print $0}'
$1~$n 分别保存着当前记录的字段1到字段n的内容 awk '{print $1, $2, $3}'
FS 字段的分隔符,默认是空格或Tab awk 'BEGIN{FS=":"}{print $1,$3,$6}' /etc/passwd
NF 记录当前记录中的字段个数 awk '{print $0} END{printf("Total Field(s):%d\n", NF)}' 201509.log
NR 已经读出的行数,从1开始计数;对于多个文件的情况下,该值会持续累加 awk '{print NR}' 201508.log 201509.log
FNR 对于当前处理的文件来说,已经读出的行数;对于多个文件的情况下,该值是各个文件独自对应的行号 awk '{print FNR}' 201508.log 201509.log
RS 输入的记录分隔符, 默认为换行符 awk 'BEGIN{RS=" "}{print FNR}' 201508.log
OFS 输出字段分隔符, 默认也是空格 awk 'BEGIN{OFS="\t"}{print $1, $2, $3}' 201509.log
ORS 输出的记录分隔符,默认为换行符 一般用的很少,此处不举例说明了
FILENAME 当前输入文件的名字 awk '{print FILENAME}' 201509.log

 

 

注意事项:

expr 算术运算中,运算符两边必须有一个空格

 

参考:

https://www.tuicool.com/articles/2mqmYbe

  • 大小: 114.2 KB
  • 大小: 487.3 KB
0
0
分享到:
评论

相关推荐

    macOS final shell查看日志.pkg

    在日志查看方面,FinalShell提供了实时监控、搜索、过滤以及导出等功能,帮助用户迅速定位和分析日志中的关键信息。 首先,FinalShell支持实时查看日志。用户可以连接到远程服务器,然后打开指定的日志文件,软件会...

    andorid使用jni执行shell命令例子

    在实际开发中,我们通常会将shell命令的执行结果或错误信息记录到日志,以便于调试和分析。可以使用Android的日志系统(如`Log.d()`, `Log.e()`等)将这些信息输出到控制台或者保存到文件。 总的来说,通过JNI调用C...

    Shell 分析日志文件高效命令详解.docx

    Shell 分析日志文件高效命令详解 shell 分析日志文件是一种常见的操作系统日志记录方式,通过分析日志文件,可以获取服务器的访问情况、用户行为、系统性能等信息。本文将详细介绍 Shell 分析日志文件的高效命令...

    Logcat及adb shell命令的bat脚本实现例子

    通常,我们可以编写一个批处理文件,其中包含`adb logcat -v long &gt; log.txt`这样的命令,这将把日志输出到一个文本文件中,方便查看和分析。 接着,`logcat_delete_all.bat`可能是一个清除`Logcat`中所有日志的...

    android通过jni执行shell命令

    2. 编写C/C++代码,实现执行shell命令的功能。 3. 使用`System.loadLibrary()`加载本地库。 4. 在Java代码中调用本地方法,传递shell命令。 5. 可以使用`logSystem.zip`中的工具或代码记录执行过程和结果,以便于...

    Linux UNIX shell命令大全

    《Linux UNIX Shell命令大全》是一本深度探讨操作系统交互界面——Shell编程及命令使用的权威指南。本书分为五个部分,全面覆盖了从基础到高级的各类Shell编程技术和UNIX命令,旨在帮助读者提升在Linux环境中的工作...

    linux shell监控应用程序日志报错

    2. **日志文件的读取**:脚本会使用`cat`、`tail`或`grep`命令来读取和处理日志文件。例如,`tail -f`可以持续监控日志文件的尾部,一旦有新内容,就立即显示。 3. **错误关键字的查找**:使用`grep`命令,结合配置...

    nginx-log-analysis:用于分析 nginx 日志文件的很棒的 linux shell 命令的精选列表

    本篇文章将详细介绍如何利用Linux shell命令来分析Nginx的日志文件。 首先,了解Nginx的日志格式至关重要。默认情况下,Nginx的主要访问日志文件通常位于`/var/log/nginx/access.log`,采用combined日志格式,内容...

    Shell日志分析常用命令和例子

    1、在Windows下的用户要使用shell命令符的话请先安装cygwin,安装方法自行Google(搜技术问题请使用google,百度搜不到活该) 2、下面粗略介绍下SEO日志分析常用的命令符用法,需要详细了解每个命令符请使用Google。...

    shell格式化日志输出

    test_format.sh可能是这样的一个脚本,它可能包含了上述命令的组合使用,以满足特定的日志处理逻辑。 在实际工作中,结合这些命令和脚本,我们可以高效地处理和分析大量日志数据,提高工作效率。学习和掌握这些...

    shell命令shell命令(资料包)

    学习Shell编程,最好的方法是动手实践,例如编写自动备份脚本、日志分析脚本等,将理论知识应用到实际问题解决中。 通过这个资料包,你将能够深入学习和理解Linux Shell编程的核心概念,从而提升你在系统管理和...

    shell脚本自动监测系统cpu资源,异常彪高时,自动打印应用线程日志文件

    在Linux系统中,可以使用`top`或`vmstat`命令来实时查看系统的CPU利用率。`top`命令提供了一个交互式的界面,展示当前系统中各个进程的CPU和内存使用情况;而`vmstat`则输出系统整体的统计信息,包括进程、内存、...

    jenkins 打包 ios shell命令

    - **编译配置**:包括构建目标、日志文件等,确保构建过程中产生的信息能够被记录下来供后续分析使用。 #### 三、注意事项 - **环境一致性**:确保Jenkins服务器上的开发环境与开发者的本地环境保持一致,避免因...

    shell编程和unix命令

    最后,书中简要涉及了一些Unix系统的管理问题,如用户和组管理、权限设置、进程调度、日志分析等。这部分内容虽然不是Shell编程的主体,但对于理解Unix环境下的系统运维至关重要。 总的来说,《Shell编程与Unix命令...

    Shell+Linux命令实现日志分析

    在Linux系统中,Shell脚本配合各种命令工具可以实现高效且灵活的日志分析。本文将详细介绍如何利用Shell和Linux命令来实现日志分析,特别是针对访问日志的统计。 1. 列出当天访问次数最多的IP: 使用`cut`命令以...

    Python封装shell命令实例分析

    2. **数据处理**:对于批量处理文件或者进行数据清洗时,也可以使用封装好的Shell命令来提高效率。 3. **资源管理**:在云平台或者服务器集群管理中,通过Python调用Shell命令可以帮助更高效地管理资源。 #### 五、...

    自动用ping命令测试网络状态并写到日志文件_Linux_shell编程

    在Linux系统中,shell脚本是一种强大的工具,可以自动化执行...结合日志文件,我们可以方便地查看历史数据,分析网络稳定性,及时发现并解决网络问题。在实际应用中,还可以根据具体需求进一步定制脚本,提高运维效率。

    shell常用命令总结

    - **awk '{print $4}' MqqValentineDay2010UserAccessLog.log.2010-02-25**: 使用`awk`命令从日志文件中提取第四列数据,常用于数据分析或筛选特定字段。 #### 5. 进程与网络监控 - **sudo /usr/sbin/tcpdump -i ...

    shell命令/shell脚本编写教程

    3. 日志分析:解析日志文件,提取关键信息。 4. 网络自动化:批量配置网络设备,如DNS设置、IP地址分配等。 5. 安装部署:自动化软件安装、配置和更新过程。 通过深入学习和实践这些知识点,你可以熟练掌握Shell...

Global site tag (gtag.js) - Google Analytics