您的位置:首页 > 运维架构 > Shell

shell脚本下查看日志文件

2017-12-05 14:35 295 查看
最近工作中,发现页面的显示数据和预期不一致,在排查了数据表过后,发现错误原因不在数据表和代码逻辑中。因为数据表中的数据来自log文件,所以猜测是log中的信息有误。

排查log文件过程中,因为是只读,所以试了有vim,cat,tail,grep四个,最后主要用来查看文件内容用的是tail与grep。

先贴两个相关的链接:

    tail:https://www.cnblogs.com/peida/archive/2012/11/07/2758084.html

    grep:https://www.cnblogs.com/kingstrong/p/6027304.html

里面讲解了一些相关的信息。

不过在使用的时候不可能简简单单的就能出来,比如我使用的命令:tail -f /opt/文件夹/文件名.log |grep 'GET /筛选条件',其中的‘筛选条件’,就是代码中,需要导入数据表中的某个字段 like '筛选条件'一致。这样看到的是数据的实时条件的最后几条,然后页面走一次流程,便会在脚本看到新增的数据。

grep 'GET /筛选条件' /opt/文件夹/文件夹/文件名,可以查看某个文件内容,不过不是实时的,一般的文件这个命令基本可以支持,但是遇上某些记录或需求,如:

    1、数量太多,只查看某一天的,可以在后面加日期条件:       | grep '05/Dec/2017'

    2、每一条都会很大,所以需要摘出每一条日志中的某个字段来排查,类似于数据库语句中的 select id,name fom XXX 中的单独拿出id和name来检查,可以在命令后面加个条件:              | grep -o 记录中的某个字段.......................................|less

    3、如果不看记录内容,只是看数目,后面加:        | wc -l

** 注意:1、上面的第二条中的‘记录中的某个字段’,指的是记录中,会有一个字段的值跟你想要的字段值一致,但是它的键名并不是你代码中的那样,它有自己的命名,故需要你现自己看过记录后,确定哪一个字段是你需要的那个‘name’或者‘id’

              2、第二条中的‘.........................’,指的是显示你所需要的那个键值后面的多少个字符,一个点代表一个字符位,这个根据自己的实际需求来写
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: