- 浏览: 482456 次
- 性别:
- 来自: 湖南
文章分类
- 全部博客 (201)
- j2ee (43)
- oracle (9)
- mysql (7)
- db2 (1)
- j2se (3)
- spring (1)
- hibernate (3)
- struts (0)
- Berkeley DB (0)
- linux (60)
- Apache2+PHP+MYSQL (2)
- solr (15)
- svn (1)
- IntelliJ Idea (1)
- eclipse,myeclipse (4)
- ant (2)
- vim (8)
- IT生活 (4)
- 测试 (6)
- lucene (4)
- shell (1)
- nutch (18)
- thread (1)
- hadoop (5)
- mapreduce (0)
- Python (4)
- 硬件 (1)
- database (1)
- maven (1)
- 正则表达 (0)
- 互联网 (1)
最新评论
-
youngcoder:
good job
HTTP协议头部与Keep-Alive模式详解 -
javazdq:
受教了 解释的不错。
lucene创建索引高级特性和索引创建参数优化 -
josico:
有几个问题想问下楼主1. LinkedBlockingQueu ...
生产者-消费者-BlockingQueue -
annybz:
有没有关于 BlockingQueue和ConcurrentL ...
生产者-消费者-BlockingQueue -
uniquejava:
多谢,记录的很真实。
DB2 学习记录
很多同事对命令行操作有恐惧感,应用 运行在linux 上。 于是为了分析 linux上顺序 日志 采用的 FTP+Ultraedit方法 这种方式不方便、实时性不够,也不够专业。如果碰到几百兆甚至上G日志文 件,这种分析方式的效率也很成问题,尤其是需要实施跟踪日志的情况下。
希望对大家有所协助。于是把在linux上分析顺序日志的几个常用指令及其配合使用总结一下。
指令介绍:
more :
作用:该指令,可以将文件的内容,从前向后,每次一屏,打印到终端屏幕上。
用法:
more filename
显示一屏信息后,' 空格' 向下翻一屏,' 回车' 向下翻一行,' q ' 退出。
cat :
作用:该指令本来的作用,是将多个文件的内容合并起来,打印到标准输出,但最常见的用法是显示一个文件的内容,但文件比较大的情况,屏幕会很快滚动,无法
查看有效信息,建议使用 more 。
用法:
cat filename
grep :
作用:打印文件或者标准输入中符合特定模式的行,该指令是从日志文件中检索特定信息的最有效手段。
用法:
1、 基本用法
grep pattern filename
如:
grep "error" catalina.out
可以将 tomcat 日志 catalina.out 中所有包含 error 的行显示出来
2、 使用正则表达式
grep -e "pattern" filename
如:
grep -e "[eE]rror" catalina.out
可以将 tomcat 日志 catalina.out 中所有包含 error 或者 Error 的行显示出来
3、 常用选项
-i 匹配时忽略大小写
-n 在打印的行前显示该行在原文件中的行号
-v 该选项,将 grep 的默认行为翻转,打印那些不包含特定模式的行
wc :
作用:统计文件中的行数、字数和字节数
用法:
wc filename
如:
[service@localhost threshold]$ wc nohup.out
9761028 76738200 1672741676 nohup.out
从前到后的三个数分别是行数、字数、字节数。
该指令比较常用的参数是 -l ,这个参数可以只统计行数
[service@localhost threshold]$ wc -l nohup.out
9761028 nohup.out
head:
作用:显示文件的开头 N 行
用法:
head -num filename
如:
head -100 catalina.out
显示 catalina.out 的前 100 行
tail :
作用:显示文件的最后 N 行,或者实时显示文件中新增的内容。
用法:
1、 显示文件最后 N 行
tail -num filename
如:
tail -100 catalina.out
则显示 catalina.out 文件的最后 100 行
2、 实时显示文件中新增内容
tail -f filename
如:
tail -f catalina.out
执行该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容,这一特性,对于查看日志是非常有效的。如果想终止输出,按 Ctrl+C 即可。
Linux/unix 的管道:
管道,顾名思义,你可以把它理解为一个管子,这个管子连接的是前一个指令的输出和后一个指令的输入。管道在命令行上用一个竖线 '|' 表示。
比如 :
echo 'hello world'
在屏幕上打印一行字,而
echo 'hello world' | wc –l
就是把 echo 的输出送给 wc 指令, wc 指令统计行数,输出结果为:
1
组合使用:
通过分析日志来查找问题,其本质是在日志中寻找特定的模式,并定位该模式的出现的上下文(一般要求前后 N
行)。在实际应用场景中,我们更多的是组合使用前面介绍的指令,来快速定位对我们有用的日志信息。
以下场景,我们假定日志文件名为 catalina.out
场景一 : 实时跟踪日志文件 , 并过滤出包含特定关键字的日志
tail -f catalina.out | grep " 关键字 "
以上指令组合 , 将 catalina.out 中新增的日志实时取出 , 通过管道送给 grep 指令 , grep 指令将其中包含 " 关键字
" 的行显示在 console 上 , 直到用户按 ctrl+c 退出。管道可以多次连接,所以你可以在后面增加更多的 grep
来得到更加精确的过滤结果。
比如:
tail -f catalina.out | grep " 关键字 " | grep -v "debug"
以上指令组合,将显示所有包含" 关键字" 且不包含" debug " 的行。
场景二 :寻找日志中某个异常的 stacktrace 和前后相关信息
第一步:定位出现异常的行, java 的异常,通常包含 Exception 字样
grep -n "Exception" catalina.out
该指令的 -n 参数会打印符合条件的行的行号,示例输出如下:
[itims@localhost logs]$ grep -n "Exception" catalina.out
33642:java.lang.NullPointerException
33910:java.lang.NullPointerException
34213:java.lang.NullPointerException
34523:java.lang.NullPointerException
34597:java.lang.NullPointerException
第二步 : 截取 Exception 所在行的前后各 10 行。
比如我们想关注 33910 行的 NullPointerException , 可以用如下指令 :
head -33920 catalina.out | tail -20
该指令会得到如下输出 :
[itims@localhost logs]$ head -33920 catalina.out | tail -20
Asia/Shanghai
CN
/usr/local/jdk1.5.0_12/jre
Thu Sep 17 11:13:00 GMT+08:00 2009
17 Sep 2009 03:13:00 GMT
2009-9-17 11:13:00
2009-09-17 11:13:00
java.util.GregorianCalendar[time=1253157180432,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2009,MONTH=8,WEEK_OF_YEAR=38,WEEK_OF_MONTH=3,DAY_OF_MONTH=17,DAY_OF_YEAR=260,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=3,AM_PM=0,HOUR=11,HOUR_OF_DAY=11,MINUTE=13,SECOND=0,MILLISECOND=432,ZONE_OFFSET=28800000,DST_OFFSET=0]
null
java.lang.NullPointerException
at itims.share.db.GlobalTransaction.rollback(GlobalTransaction.java:125)
at itims.web.frmwk.NetElementService.deleteNetelement(NetElementService.java:292)
at org.apache.jsp.frmwk.deletene_jsp._jspService(deletene_jsp.java:77)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
发表评论
-
ifstat命令行统计网络流量
2012-06-05 15:31 5511关于统计网络流量的问题,我喜欢用命令行方式查看: ... -
CentOS 5: Make Command not Found
2012-05-22 17:50 1395个人博客:http://demi-panda.com ... -
Linux Deepin 安装永中 Office2012 个人版(更新)
2012-05-18 19:41 1522下面讲解如何在 Linux Deepin 上安装并使用永中 O ... -
Piwik 网站分析系统
2012-04-25 15:38 2954个人博客:http://demi-panda.com ... -
C3P0使用出错!
2012-04-18 21:43 2063个人博客:http://demi-panda.com/ ... -
win7、ubuntu11.10双系统,win7重装后,如何找回linux
2012-03-25 18:40 1380个人博客:http://demi-panda.com ... -
stardict 词库安装
2012-03-22 11:32 1484下载词库文件以后直接在目录下执行 tar -xjvf ... -
ubuntu 64位 安装 永中Office
2012-03-21 11:07 0Ubuntu 64位默认是不能安装永中Office的,因为它不 ... -
is not in the sudoers file
2012-02-15 17:23 1083解决方案: 首需要切换到root身份 $su - (注意 ... -
is not in the sudoers file
2011-12-22 14:00 992解决方案: 首需要切换到root身份 $su - (注意 ... -
进程间通信IPC、LPC、RPC
2011-05-25 15:12 2061进程间通 ... -
ubuntu下virtualbox虚拟机XP里使用USB
2011-05-19 09:25 2494环境:ubuntu10.04下安装virualbox,虚拟 ... -
Shell 判断文件类型
2011-05-11 15:45 3699#!/bin/sh ... -
Linux wget 详解
2011-05-07 16:05 4675个人技术博客:http://dem ... -
linux curl命令详解
2011-04-30 15:36 6001个人技术博客:http://demi-panda.com ... -
解决Socket TIME_WAIT造成的服务器无法访问,Apache的KeepAlive和TCP/IP的TIME
2011-04-20 11:19 4569个人技术博客:http://demi-panda.com ... -
Ffmpeg快速命令使用
2011-03-24 15:52 1828Ffmpeg使用语法 ffmpeg [[opt ... -
Linux远程备份工具Rsync使用案例
2011-02-24 10:31 3522个人技术博客:http://dem ... -
linux下的命令行下转换媒体格式工具FFMPEG详解
2011-02-15 17:25 6662在windows下有格式工厂之 ... -
Linux下tar bz gz等压缩包的压缩和解压
2011-02-12 12:58 1422解压 就用得挺熟 ...
相关推荐
通过阅读《Linux/Unix系统编程手册(下)》,开发者不仅能深入理解底层系统工作原理,还能学习到编写高效、可靠的系统级代码的技巧。这不仅对系统管理员,也对任何希望提升技能的Linux/Unix开发者来说都是宝贵的知识...
不过,C++Builder提供了一些工具,如Embarcadero的C++Builder Cross Platform Mobile and Desktop,使得开发者可以在Linux或Unix上构建和部署C++应用程序。 文件列表中的"1tUV7Client"和"TD44SVR"可能是这个项目中...
"6_beep"这个文件很可能是实现了上述部分或全部功能的源代码示例,通过学习和分析它,开发者可以了解到如何在Linux/Unix环境中编写驱动程序,以及如何与硬件资源交互。这种实践经验对于提升嵌入式系统开发能力至关...
分析和研究这些文本文件,可以加深对Linux/Unix编程原则、C++编程技巧以及Qt库的使用方法的理解。 总的来说,这个压缩包提供了一个融合了Linux/Unix编程、Visual C++和Qt开发的学习资源。无论是对Linux/Unix的系统...
此外,书中还可能包含了调试技巧、性能分析、错误处理和日志记录等方面的内容,帮助开发者构建健壮、高效的系统级程序。对于想要在Linux和UNIX环境中进行深入系统编程的开发者来说,这本书是不可或缺的参考资料。...
- **设备管理**:介绍了Linux/UNIX下设备的分类、识别及驱动程序安装流程。 ##### 2. 网络配置与管理 - **TCP/IP协议详解**:深入分析TCP/IP协议栈的各层功能与工作原理,帮助理解互联网通信机制。 - **DNS与路由...
以上仅是UNIX/Linux系统操作命令的一小部分,实际使用中还会有更多工具和技巧。通过深入学习和实践,可以更好地驾驭这些强大的操作系统。参考《UNIX+Shell+范例精解(第4版)》、《Linux命令大全》以及《UNIX环境高级...
10. **调试技巧**:学会使用`gdb`调试器,以及日志记录,有助于排查和解决程序中的问题。 以上是Linux/Unix环境下的C/S模式编程基础知识,实践中还需要不断学习和实践,才能熟练掌握。"c-s"文件很可能是关于这一...
这暗示了文件内容可能涉及如何在Linux或Unix环境下设置、配置和控制DNP/5370板卡,它可能是一个设备驱动程序或者一个应用程序,用于通信和数据交换。 标签“Linux/Unix编程”和“Unix_Linux”进一步确认了这个...
10. **调试技巧**:使用gdb等工具进行程序调试的方法,以及如何分析日志和核心转储文件。 11. **安全**:讨论Unix/Linux系统的安全性,包括权限模型、防火墙、SELinux、AppArmor等安全特性。 这份文档可能是对...
"kfr2r09.rar_Linux/Unix编程_Unix_Linux_"这个标题暗示了这是一个关于Linux或Unix系统编程的学习资源,可能是源代码、教程或者是针对特定硬件平台的驱动程序。描述中提到的"OMAP3 Beagle revision for Linux v2.13....
Linux/Unix编程的知识广泛而深入,从这个E2100驱动的实例中,我们可以学习到硬件驱动开发的基础,以及Linux系统编程的实践技巧。这对于提升Linux系统级编程能力,尤其是对网络设备的管理和优化,具有极大的价值。
7. **错误处理和调试**:了解如何有效地处理程序错误,使用日志记录和调试技巧,如gdb调试器的使用。 8. **shell脚本编程**:虽然主要关注C编程,但了解bash或其他shell脚本语言可以极大地提高开发效率,因为它们常...
在这个主题中,我们主要探讨如何在Linux或Unix操作系统上为这种微控制器编写和调试代码。 【描述】"68EZ328 specific config for Embedded Linux." 提示我们这个项目或教程专注于为m68EZ328配置嵌入式Linux系统。...
标题中的"gl518sm.rar_Linux/Unix编程_Unix_Linux_"表明这是一个与Linux/Unix系统编程相关的资源,特别是针对"gl518sm"设备的驱动或传感器管理程序。"lm_sensors"是一个在Linux系统中用于检测硬件温度、电压和风扇...
掌握如kdb、kgdb等内核调试工具的使用,以及日志记录和分析技术,对解决问题大有裨益。 通过阅读《Linux/Unix编程》这本书,读者不仅可以了解上述知识点,还能学习到如何编写、编译和测试驱动程序,以及如何将驱动...
9. **调试与优化**:可能包括如何使用日志记录、性能监控以及调试技巧,确保程序的健壮性和效率。 10. **最佳实践和注意事项**:总结一些在实际项目中需要注意的设计原则和性能优化技巧。 总之,这个压缩包文件...
本文将围绕“ar-peer.rar_Linux/Unix编程_Unix_Linux_”这一主题,深入探讨RxRPC远程传输端点管理驱动程序在Linux系统中的应用及其重要性。 RxRPC(Reliable eXtreme Protocol)是一种面向消息的、可靠的、具有低...
综上所述,`therm.c`和`therm.h`的代码可能涉及到了使用C语言在Linux/Unix系统下实现的热管理模块,通过系统调用、内核接口和I/O操作来获取和处理硬件的温度信息,以确保系统安全和性能。这个过程涉及到的编程技巧和...
综上所述,"hanwang.c"文件的分析和理解涉及到了Linux驱动开发的多个方面,包括设备驱动原理、USB协议、内核编程以及系统调试等。对于希望在Linux环境下的硬件支持方面有所建树的开发者来说,这些都是不可或缺的知识...