日志查找

Posted panda-yichen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日志查找相关的知识,希望对你有一定的参考价值。

当你不确定文件是否在该文件夹下时,可以通过ll ls cd查看。

ll                   查看当前文件夹下的所有信息

ls  -a               查看所有文件 包含隐藏文件(前面加 . 的文件)

ls                   查看所有文件 不包含隐藏文件

cd 文件夹           进入当前文件夹下的文件夹

cd 文件夹完整路径   直接进入某个路径下的文件夹

cd  ..               返回上一级

cd                  返回根目录

 

Find

你仅记得日志部分文件(夹)名时可以用find查找

基本语法:find 路径 -name  ‘*a*’

find  ./  -name  ‘*a*’  在当前路径(./)查找名字包含a的所有文件及文件夹

find  /home/test010/hanhan  -name  ‘*txt’ 

查找在hanhan文件夹中所有以TXT结尾的文件和文件夹

find  ./  -name  ‘*aaa*’  -type d

在当前路径下查找名之中包含aaa的文件夹

-type d 是找文件夹  -type  f 是找文件

find  ./  -name  ‘*aaa*’  |xargs  grep 1234

在当前路径下查找名字包含aaa的文件 且把文件内容包含1234的找(过滤)出来

find  /home/test010/hanhan  -name  ‘*txt’ | xargs  rm     

在hanhan 路径下查找名字以txt 结尾的文件并批量执行删除

find /home/test050/test1/ -name ‘test.log‘ |xargs -I FILE cp FILE /home/test050/222/123.log

在test1 文件夹下面 查找一个名字为test.log的文件 并把它备份到222文件夹下面且重命名为123.log  (其中 xargs -I为格式 I必须大写 cp 两端的 file 可以自己取,只要保持一致即可)

 

Grep过滤

知道日志具体报错信息及日志名可以用find快速查找(使用较多)

grep  ‘Null pointer exception’  /home/test010/messagepush.txt

在此路径下的messagepush.txt 文件中过滤出来Null pointer exception4(场景举例 订单出错可查订单号,具体报错信息)

grep  -n  ‘Null pointer exception’  /home/test010/messagepush.txt

在此路径下的messagepush.txt 文件中过滤出来Null pointer exception 并显示所在行号

grep ‘Null pointer exception‘  /home/test011/webmessage/messagepush.txt  - -color  -C3(--color  写成 --col )

把日志文件 messagepush.txt (完整路径)里面的Null pointer exception 过滤出来并且用颜色标记,并且显示附近的3行(显示本行及本行的上下三行)其中C3 的C必须大写,-C3使用较多,因为仅有报错信息可能无法分析出具体的问题,需要关注其上下的日志进行协助分析。

tail,head

当你仅记得日志的大概位置的时候可以用tail head

tail  -f b.log 查看动态日志(可跟绝对路径)    (ctrl+c强制退出)

tail  -100f  b.log 查看最近100行的动态日志(打印最新日志,这个使用也比较多)

tail -n 3 b.log 显示最后三行的日志

head -n 3 b.log 显示前三行的日志

tail -n +3 b.log 从第三行开始显示以后的日志

head -n -2 b.log 显示除了最后两行的所有日志

sed

你记得报错日志大概位置,或大概时间可以用sed

sed -n ‘3,18p’ article.log               查询出article.log 文件里面的第三行到第18行日志

sed -n ‘18p’ article.log                 查询出article.log 文件里面的第18行日志

sed -n ‘/2018-07-30 09:29:55/,/2018-07-30 09:31:55/p‘ article.log

查询2018-07-30 09:29:55到2018-07-30 09:31:55时间段之间的日志

sed  -i  ‘s/6666/9999/g’ article.log

把article.log 里面的6666批量替换成9999

cat

cat  aaa .txt |grep -E  ‘123|456|789’   同时过滤 123,456,789三个字段

 

以上是关于日志查找的主要内容,如果未能解决你的问题,请参考以下文章

借助二分法匹配时间戳实现快速查找日志内容

Kafka中改进的二分查找算法

封装查找元素以及集成日志输出,Base模块

用XShell查询LINUX上的日志

查找MySQL的执行日志

Ubuntu下查找nginx日志