作家
登录

Linux Bash异常情况处理

作者: 来源: 2012-06-12 20:40:25 阅读 我要评论

用bash统计异常数

这里有一个使用bash的例子,你可能会在一个典型的项目中遇到类似的情况。当时我在一个已经有6年历史的大型Java项目中工作(我只是一个访客,在第6年进入这个项目,并在上面工作了大概8个月)。我的任务之一就是清理一些经常发生的异常,为此我做的第一件事就是提问:"哪些异常会被抛出?以什么样的频率?"当然了,没人知道,所以我的第一个任务就是自己动手找到答案。但问题是这个应用程序每星期会吐出超过2 GB的日志,很快我就意识到:即便只是尝试用文本编辑器打开这个文件,那都是在浪费时间。于是我坐下来,写了这么一段脚本:

#!/bin/bash
for X in $(egrep -o "[A-Z]w*Exception" log_week.txt | sort | uniq) ;
do
    echo -n -e "processing $Xt"
    grep -c "$X" log_week.txt
done

表4-2解释了这段bash小脚本的作用。

表4-2. 用于统计异常数量的复杂bash命令

文字

用途

egrep -o

找出日志文件中出现在“Exception”字眼之前的文字,对它们进行排序,然后得到一个消除重复之后的列表

"[A-Z]w*Exception"

用于定位异常信息的正则模式

log_week.txt

庞大的日志文件

| sort

将前面的查找结果管道给sort,生成一个排序后的异常列表

| uniq

去掉重复的异常信息

for X in $(. . .) ;

循环前面生成的异常列表,针对其中的每个异常执行这些代码

echo -n -e "processing $Xt"

把找到的异常输出在控制台上(这样我才知道这段脚本还在工作)

grep -c "$X" log_week.txt

在庞大的日志文件中找出这个异常出现的次数

这个项目到现在还在使用这段小程序。这是一个好例子:借助自动化工具,你可以从项目中找出一些从未有人发现的、有价值的信息。与其绞尽脑汁地猜测有哪些异常被抛出,不如把它们都找出来,这样也可以更有目的性、更容易地修复这些抛出异常的程序。

【编辑推荐】

  1. Autoconf使用关于autoconf安装条件介绍 
  2. Autoconf使用生成Makefile的方法及其规则
  3. autoconf安装关于可移植的源代码详解
  4. Autoconf教程关于UNIX文件系统概述
  5. Autoconf教程关于安全管理介绍

  推荐阅读

  Linux Bash内置命令大全详细介绍

主要Shell内置命令Shell有很多内置在其源代码中的命令。这些命令是内置的,所以Shell不必到磁盘上搜索它们,执行速度因此加快。不同的Shell内置命令有所不同。A.2.1 bash内置命令.:执行当前进程环境中的程序。同so>>>详细阅读


本文标题:Linux Bash异常情况处理

地址:http://www.17bianji.com/yunwei/2098.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)