Linux 截取线上日志

来源:互联网 发布:mac地址可以重复吗 编辑:程序博客网 时间:2024/06/10 04:48
  1. 按日期截取线上日志命令
    (1)首先,需清楚日志输出的时间日期格式,具体命令如下:
    sed -n ‘/6-5 00:00:00/,/6-5 16:30:31/’p catalina.log > test.log
    上面的命令就代表截取总日志catalina.log中日期为6月5号0点到16点30分31秒的日志,并输出重定向到test.log。
    (2)其中日期格式不同就只需修改下日期格式即可,如下只需改日期即可:
    sed -n ‘/1-09 15:00:00/,/1-09 16:30:31/’p catalina.log > catalina.2017-01-09.log
    这样就可以取出1月9号下午15点到下午16点30分31秒的日志。
  2. 按行数截取线上日志
    (1)首先,先查看总日志,如下面操作:
    vi catalina.log
    输入英文的冒号,再输入set nu,显示行数,然后定位一下你所需取的行数,接着输入命令:
    sed -n ‘10000,20000p’ catalina.log > test.log
    这样就可以取出10000到20000行的日志。
    (2)其中,我们要定位其行数时,我们可以这样操作:
    vi catalina.log
    输入英文的冒号,先输入set nu,显示出日志的行数,接着继续输入 /linmoumou 或者 ?linmoumou,这样就可以搜索定位到linmoumou这样的字符串,然后再根据日期,定位到其行数,就可以输入命令取行数的日志,大约取多少行看具体情况了!
  3. 截取距离尾部多少行日志,即最近多少行的日志:
    这种取日志方法要分两种情况:
    (1) 第一种,用sudo命令取日志:
    首先,需到你这个用户的工作目录,可以输出以下命令:
    cd ~ 这样便可进入工作目录,用pwd查看当前路径,基本都是/home/test这样类似的
    然后,就可以输入以下命令:
    sudo tail -270000 /tomcat/logs/catalina.log > catalina
    其中这种需加上你所取的文件路径,要不然会取不出来,这样可取出最近270000行的日志,并重定向输出到catalina这个文件中。
    (2)第二种,这种跟上面的有点区别,这种可以直接进入总日志的文件目录,然后输入命令:
    sudo sh -c “tail -20000 catalina.log > catalina”
    这样就可以取出最近20000行的日志,并重定向输出到catalina文件中。

注:以上几种方法,对于取线上日志,查询定位问题很有帮助,需了解。
上面的命令大部分需进入所有总日志的路径,然后才执行命令,并且注意后面重定向文件的时候,不要取和总日志相同的名字,最好取时间日期命名格式,方面查找。

这些东西都是工作期间同事所教的,这里要多谢同事的分享,毕竟我还是一个新手,还有自己执行,摸索得到的,如有错误,请指出,谢谢!

0 0
原创粉丝点击