sed日志截取
按日期截取线上日志命令
(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秒的日志。
按行数截取线上日志
(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这样的字符串,然后再根据日期,定位到其行数,就可以输入命令取行数的日志,大约取多少行看具体情况了!
截取距离尾部多少行日志,即最近多少行的日志:
这种取日志方法要分两种情况:
(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文件中。
注:以上几种方法,对于取线上日志,查询定位问题很有帮助,需了解。
上面的命令大部分需进入所有总日志的路径,然后才执行命令,并且注意后面重定向文件的时候,不要取和总日志相同的名字,最好取时间日期命名格式,方面查找。