`

Linux常用命令

阅读更多

【Linux基础命令】

 

1. grep查找匹配文本

 

【a】在文件中查找

 $grep 'failed to initialize BeanFactory' upp-account.log

 

【b】查找并显示匹配行及以下的200行

 $grep -A 200 'failed to initialize BeanFactory' upp-account.log

 

【c】查找并显示匹配行及以上的200行

 $grep -B 200 'failed to initialize BeanFactory' upp-account.log

 

【d】查找,忽略大小写,并显示匹配行及以上的200行

 $grep -i -A 200 'failed to initialize BeanFactory' upp-account.log

 

 

 

【Linux下日志分析的几个常用命令】

 

有时候我们需要对线上的应用日志做一些分析和简单的统计工作,熟悉一下Linux下文本处理的几个命令,可能会有意想不到的收获:

more   查看文件内容

grep    在文件中查找

awk    文本处理

sort    排序

sed    文本处理

下面举个两个例子,说明一下这几个命令的简单应用

1、统计一下今天支付宝到淘宝、淘宝到支付宝的接口调用情况

第一步,找到日志文件路径,确定日志格式

因为接口调用走是TC,先ssh到一台tc的服务器,到日志目录下,ll 一下,看到有几个命名为alipay的日志文件,感觉是打印接口调用日志的,

more alipay-notify-success.log

输出:
2009-06-29 00:00:00,421 [] INFO  alipay-notify-success -
*********alipay notify callback*********
out_trade_no=T200P2062628786,trade_status=WAIT_BUYER_PAY,notify_action_type=createPartnerTradeAction,
input:

从日志看出,这是支付宝回调淘宝接口的日志,格式包括:时间,订单号、状态、通知类型等等

more alipay.log

输出:
2009-06-29 00:00:00,072 [] INFO  core.SignedTbClientInvoker -
**********Payway Request and Response*********
Service Name:
trade_create
Request URL:
http://aligw.alipay.com

从日志上看,这是淘宝调用支付宝的日志,格式包括:时间,接口类型,请求内容等等

第二步,查找特征文本

需要分类型统计接口的调用次数,所以特征字符串就是接口的类型文本,使用grep 命令

grep ‘,notify_action_type’ alipay-notify-success.log

第二个日志比较特殊,特征文本单独一行,没有固定前缀或者后缀特征,而前一行是固定的”Service Name:“,可以查找前一行,然后grep输出的时候多输出一行:

grep ‘Service Name:’ -A1 alipay.log

grep 命令有很多可选参数,比如忽略大小写,输出前(-B before),后(-A after)行文本等等。

第三步,文本分列

通常,日志文件的一行文本,都由几列组成,中间是分隔字符串,而我们的目标就是找到需要的列,并进行相关的计算,统计,这里就需要用到 awk 命令

对于 alipay-notify-success.log 日志文件,我们使用下面命令:

grep ‘,notify_action_type’ alipay-notify-success.log | awk -F’,’ ‘{a[$3]++}END{for (i in a) print i”,”a[i]}’

grep命令找到符合的行,作为awk命令的输入,-F 后面是指定分隔符号,后面是表达式,首先定义一个数组a(也可以理解为是一个map)用分隔出来的第三列作为下标(key),值每次加一,END 后面是最后执行的语句,循环输出数组

awk命令本身很强大,可以全面地看一下它帮助

第四步,排序

第三步已经完成了计算、统计工作,最后我们根据调用次数进行一下排序,方便查看

这里使用sort 命令

grep ‘,notify_action_type’ alipay-notify-success.log | awk -F’,’ ‘{a[$3]++}END{for (i in a) print i”,”a[i]}’ |sort -t, -k2 -n -r

-t 跟ark的-F功能类似,是把一行文本分成几列,-k指定需要排序的列,-n表示按数字方式排序,-r 表示倒序

最后,我们看到了输出:

notify_action_type=createPartnerTradeAction,52641
notify_action_type=payByAccountAction,44807
notify_action_type=sellerSendGoodsAction,43848
notify_action_type=confirmReceiveAction,40705
notify_action_type=modifyTradeAction,25733
notify_action_type=allowRefundAction,10407
notify_action_type=autoFinishTradeAction,8351
notify_action_type=closeTradeAction,8030
notify_action_type=applyRefundiiiAction,2653
notify_action_type=refundDisburseAction,2330
notify_action_type=confirmDisburseAction,401
notify_action_type=extendTimeoutLimitAction,368
notify_action_type=modifyRefundiiiAction,280
notify_action_type=cancelRefundiiiAction,52
notify_action_type=null,20
notify_action_type=unfreezeTradeAction,1
notify_action_type=refundVoucherCheckPassAction,1
notify_action_type=freezeTradeAction,1

当然这是单台机器的,根据应用的机器数量,可以大致评估一下总的情况。

类似的,对于 日志alipay.log

grep ‘Service Name:’ -A1 alipay.log | sed ‘/Service Name:/’d |sed ‘/–/’d | awk -F’    ‘ ‘{a[$2]++}END{for (i in a) print i”,”a[i]}’ | sort -t, -k2 -n -r

输出:

trade_create,51326
send_goods_confirm_by_platform,40716
confirmReceiveGoods,39351
modifyTradeFee,25261
cae_charge_agent,10074
close_trade,3871
extendTimeout,378
calculate_service_fee,52
union_data_prepare,15
logistic_sign_in,4

接下来,我们再看一个例子

需求:统计一下,denali机器中,我的淘宝首页 这个页面的请求次数和平均响应时间

还是分几步:

1、首先找到日志和日志格式

Apache 的访问日志,/home/admin/cai/logs/cronlog/2009/06/2002009-06-29-taobao-access_log

more 2002009-06-29-taobao-access_log

输出:

58.208.1.15 148452 3251 [29/Jun/2009:00:00:04 +0800] “GET http://my.taobao.com/mytaobao/home/my_taobao.jhtml” 200 14147 “http://my.t
aobao.com/mytaobao/home/my_taobao.jhtml” “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; QQDownload 551; User-agent
: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;); SLCC1; .NET CLR 2.0.50727; MDDC; .NET CLR 3.5.30729; .NET CLR 3.0.30618)

2、查找特征文本

grep ‘GET http://my.taobao.com/mytaobao/home/my_taobao.jhtml’ 2009-06-29-taobao-access_log

3、文本分列

grep ‘GET http://my.taobao.com/mytaobao/home/my_taobao.jhtml’ 2009-06-29-taobao-access_log | awk -F’ ‘ ‘{i+=$2}END{print NR “,” i/NR/1000}’

分享到:
评论

相关推荐

    最全Linux常用命令大全.pdf

    以下是一些关于Linux常用命令的详细说明: 1. **pwd**:`pwd`(Print Working Directory)命令用于显示当前工作目录,即用户当前所在的目录路径。 2. **cd**:`cd`命令用于切换目录。例如,`cd /`进入根目录,`cd ...

    linux常用命令大全.pdf

    ### Linux常用命令详解 #### 一、文件管理 1. **ls**:此命令用于列出当前目录中的文件和子目录。通过使用不同的选项,可以改变其输出格式。 - `-l`:使用长格式列表输出,包括文件权限、拥有者、组、大小等详细...

    LINUX常用命令全集

    LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 ...

    最全Linux常用命令大全-linux常用命令全集

    "最全Linux常用命令大全-linux常用命令全集" 本文档对 Linux 中最常用的命令进行了详细的总结和说明,涵盖了文件和目录管理、磁盘空间管理等方面的命令。 文件和目录管理命令 1. `pwd` 命令:显示当前目录 `pwd`...

    Linux常用命令详解.pdf

    ### Linux常用命令详解知识点 #### 一、命令格式与通配符 - **命令格式**: - **命令**:指定要执行的操作。 - **选项**:改变命令的行为方式,通常以`-`开头,多个选项可以用空格或直接连接的方式给出。 - **...

    linux常用命令大全.md

    linux常用命令大全 1. **ls**:列出目录内容 2. **cd**:改变当前目录 3. **pwd**:显示当前工作目录 4. **mkdir**:创建目录 5. **rmdir**:删除空目录 6. **cp**:复制文件或目录 7. **mv**:移动或重命名文件或...

    Linux常用命令教学视频

    04.1.1 Linux常用命令-文件处理命令-命令格式与目录处理命令ls.mp4 04.1.2 Linux常用命令-文件处理命令-目录处理命令.mp4 04.1.3 Linux常用命令-文件处理命令-文件处理命令.mp4 04.1.4 Linux常用命令-文件处理...

    最新-Linux常用命令大全-非常实用

    Linux 常用命令大全 Linux 操作系统是一个功能强大且灵活的操作系统,拥有众多实用的命令来帮助用户管理和维护系统。下面是 Linux 中一些常用的命令,旨在帮助用户快速掌握 Linux 操作系统。 TTY 控制台终端 在 ...

    Linux常用命令汇总

    Linux常用命令汇总中,首先涉及到的是检查Java开发工具包(JDK)是否已安装以及版本信息。使用命令`java –version`和`javac –version`可以实现该功能。`java –version`用于查看Java运行环境的版本,而`javac –...

    LINUX常用命令语言

    LINUX 常用命令语言总结 LINUX 操作系统提供了大量的命令语言,以下是常用的命令语言概述: 1. 远程桌面连接命令:mstsc mstsc 是一种远程桌面连接命令,可以连接到另一台计算机,并在远程桌面上进行操作。 2. ...

    Linux常用命令.xls

    Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls ...

    Linux常用命令.md

    linux常用命令md文件

    Linux常用命令大全

    Linux常用命令全集.CHM Linux vi命令大全.txt liunx命令大全.txt liunx 下如何用命令行设置网络?.txt 请问怎么设置DNS的命令?.txt Red Hat Linux下配置Tomcat+JSP+Apache服务器的步骤.txt Linux 下 Apache 与 ...

    Linux 常用命令大全

    linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; ...

    Linux常用命令及实用命令万字总结.doc

    "Linux常用命令及实用命令万字总结" 本文档旨在总结Linux系统中常用的命令和实用命令,涵盖了基本的文件管理、目录操作、文件查询、系统管理等方面的命令。 1. ls命令 ls命令是Linux系统中最常用的命令之一,用于...

    常用linux常用命令大全.zip

    linux常用命令大全常用linux常用命令大全.常用linux常用命令大全.常用linux常用命令大全.常用linux常用命令大全.常用linux常用命令大全.常用linux常用命令大全.常用linux常用命令大全.常用linux常用命令大全.常用...

    Linux常用命令总结

    Linux常用命令是任何使用Linux操作系统的人必须熟悉的工具。这些命令通常通过命令行界面(CLI)执行,是与系统交互的主要方式。以下是一些Linux系统中最常用命令的详细说明: 1. ls命令:用于列出目录内容。ls -l ...

    Linux常用命令全集.zip

    本资料"Linux常用命令全集.zip"包含了丰富的Linux命令知识,旨在帮助用户深入理解并应用这些命令。CHM文档是一种常见的Windows帮助文件格式,它将HTML页面集合在一个文件中,方便用户查阅。 以下是一些主要的Linux...

Global site tag (gtag.js) - Google Analytics