欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何切分和截取服务器上的大日志文件

程序员文章站 2022-05-29 16:49:00
...

一、Tomcat 日志切分配置,(logrotate)详细介绍
新建一个文件
在/etc/logrotate.d/ 目录下新建一个文件,命名随意:
$ mkdir tomcat
$ vi /etc/logrotate.d/tomcat
复制下面的语句至新建的文件中:

//需要切割的日志绝对路径
/data/tomcat-8.0.38/logs/catalina.out {   
    copytruncate
    daily
    rotate 30
    compress
    delaycompress
    missingok
    dateext
    notifempty 
    size 100M
}
   $:wq

3. 添加定时任务

    $ crontab -e

     00 00 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat &>/dev/null
   $:wq

备注:

重要的 logrotate 选项:

compress --> 压缩日志文件的所有非当前版本
daily,weekly,monthly --> 按指定计划轮换日志文件
delaycompress --> 压缩所有版本,除了当前和下一个最近的
endscript --> 标记 prerotate 或 postrotate 脚本的结束
errors “emailid” --> 给指定邮箱发送错误通知
missingok --> 如果日志文件丢失,不要显示错误
notifempty --> 如果日志文件为空,则不轮换日志文件
olddir “dir” --> 指定日志文件的旧版本放在 “dir” 中
postrotate --> 引入一个在日志被轮换后执行的脚本
prerotate --> 引入一个在日志被轮换前执行的脚本
rotate ‘n’ --> 在轮换方案中包含日志的 n 个版本
sharedscripts --> 对于整个日志组只运行一次脚本
size=‘logsize’ --> 在日志大小大于 logsize(例如 100K,4M)时轮换
二、截取日志文件中的部分日志
在日常维护中,需要根据日志来排查故障,但由于日志文件过大,整个下载又很耗时间,我们可以通过以下两种方式输出部分日志
第一种:tail 打印方式

tail -输出行数 日志绝对路径名 > 输出文件绝对路径名
如何切分和截取服务器上的大日志文件

备注:

tail -20  date.log        输出最后20行的内容

 tail -n -20  date.log    输出倒数第20行到文件末尾的内容

 tail -n +20  date.log   输出第20行到文件末尾的内容

 tail -f date.log            实时监控文件内容增加,默认10行。

第二种:sed 打印方式(指定行输出)

sed -n “开始行,结束行p” 日志绝对路径名 > 输出文件绝对路径名

如何切分和截取服务器上的大日志文件

备注:

 sed -n '70,75p' date.log             输出第70行到第75行的内容

  sed -n '6p;260,400p; ' 文件名    输出第6行 和 260到400行

  sed -n 5p 文件名                       输出第5行
相关标签: 数据库相关