Tomcat日志切割工具 logrotate

Tomcat日志切割工具 logrotate

在我们生产环境中经常遇到tomcat log清理的问题,曾经做过实验通过重定向的方式把日志清空,但是发现日志tomcat里面的catalina.out不输出日志了。这时候我们可以考虑一下日志管理工具Logrotate

image_1c0imsci41hc61rrc1p9c29kqr59.png-118.8kB

一、日志工具Logrotate简介

1. Logrotate实际就是起着上述脚本作用的小工具,他通过让用户来配置规则的方式,检测和处理日志文件。配合Cron可让处理定时化;
2. Logrotate预制了大量判断条件和处理方式,可大大降低手写脚本的负担和出错的可能;
3. Logrorate检测日志文件属性,比对用户配置好的检测条件,对满足条件的再根据用户配置的要求来处理,整个可以通过Cron来定时调度,这其实是非常经典的Linux解决问题的思路,可以好好静下心来品味下,简单,好用。

二、Logrotate运行机制

系统会定时运行logrotate,一般是每天一次。系统是这么实现按天执行的。crontab会每天定时执行/etc/cron.daily目录下的脚本,而这个目录下有个文件叫logrotate

[root@ldap01 ~]# cat /etc/cron.daily/logrotate
#!/bin/sh 
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

三、Logrotate组成

以下是logrotate运行的关键点:

/usr/bin/logrotate 程序所在位置;
/etc/cron.daily/logrotate 默认让Cron每天执行logrotate一次;
/etc/logrotate.conf 全局配置文件;
/etc/logrotate.d 应用自个的配置文件存放目录,覆盖全局配置;

四、安装配置Logrotate

安装logrotate

[root@localhost ~]# yum install -y logrotate

配置文件logrotate

[root@localhost ~]# cat /etc/logrotate.d/tomcat
/application/tomcat/logs/catalina.out {
    daily
    copytruncate
    rotate 30
    compress
    notifempty
    dateext
    missingok
}

关于每个参数的作用我们可以查看全局文件cat /etc/logrotate.conf 我们可以把配置文件写在/etc/logrotate.conf里面或者放在/etc/logrotate.d下面

配置文件参数解释

daily           表示每天整理一次    
rotate 20       表示保留20天的备份文件
dateext         文件后缀是日期格式,也就是切割后文件是:xxx.log-20171205.gz
copytruncate    用于还在打开中的日志文件,把当前日志备份并截断
compress        通过gzip压缩转储以后的日志(gzip -d xxx.gz解压)
missingok       如果日志不存在则忽略该警告信息
notifempty      如果是空文件的话,不转储
#size 5M                #当catalina.out大于5M就进行切割,可用可不用!

以下是不常用参数

1. weekly            指定转储周期为每周
2. monthly           指定转储周期为每月
3. nocompress        不需要压缩时,用这个参数 
4. nocopytruncate    备份日志文件但是不截断
5. create mode owner group   转储文件,使用指定的文件模式创建新的日志文件
6. nocreate          不建立新的日志文件
7. delaycompress 和 compress    一起使用时,转储的日志文件到下一次转储时才压缩
8. nodelaycompress     覆盖 delaycompress 选项,转储同时压缩
9. errors address     转储时的错误信息发送到指定的Email 地址
10. ifempty     即使是空文件也转储,这个是 logrotate 的缺省选项。
11. mail address     把转储的日志文件发送到指定的E-mail 地址
12. nomail      转储时不发送日志文件
13. olddir directory      转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统 14. noolddir      转储后的日志文件和当前日志文件放在同一个目录
15. prerotate/endscript     在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行16. postrotate/endscript   在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行

温馨提示:配置文件里一定要配置rotate 文件数目这个参数。如果不配置默认是0个,也就是只允许存在一份日志,刚切分出来的日志会马上被删除。

五、测试

# 1. 调试 (d = debug)参数为配置文件,不指定则执行全局配置文件
logrotate -d /etc/logrotate.d/tomcat.conf 
# 2. 强制执行(-f = force),可以配合-v(-v =verbose)使用,注意调试信息默认携带-v;logrotate -v -f /etc/logrotate.d/tomcat.conf

效果图如下:

image_1c0j746i44396fk1oqr1o5a12g5m.png-52.1kB

这个工具会自动每天帮我们分隔日志并进行打包,不需要我们在写crontab的脚本,非常的好用!

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/7742

(0)
郭靖的头像郭靖
上一篇 2023年3月23日 下午4:37
下一篇 2023年3月24日 下午4:40

相关推荐

  • IIS配置Url重写实现http自动跳转https的重定向方法

    需要准备的工具和环境: 操作流程 配置URL分为全局和非全局,下图,可以看到URL重写组件内容。 选择某一个站点中的URL重写,我们称之为单独的非全局。直接选择IIS的可以配置全局,所以这里要依靠你自己的判断和选择。 打开Url重写工具 在右侧点击添加,然后选择空白规则,然后进行规则的配置。 规则命令如下 这个也是网上一大堆教程最神的地方,很多东西都是缺失的…

    2023年2月21日
    61500
  • Centos 7.9 宝塔面板下安装开源IDC机房资产管理系统-Racktables

    第一步:准备宝塔环境 根据racktables官方文档,选择合适版本,搭建环境。 第二步:安装racktables 1 官网下载(https://www.racktables.org/)racktables安装包,并上传到宝塔。 2 解压安装包,设置网站,创建数据库 3 浏览器完成安装 Please set ownership (chown) and/or …

    2022年12月22日
    54700
  • 宝塔部署java项目

    进入宝塔官方网站 url地址 https://www.bt.cn/download/linux.html 下滑看到安装命令(我这边使用的是centos7.8)复制相应脚本命令 Centos安装脚本 输入复制的命令 等待安装宝塔面板,粘贴点击回车即可 中间会输入一次确认是否安装 输入 y 回车 安装需要一小段时间,最后当出现有宝塔面板地址和账号密码的时候证明安…

    2023年4月3日
    41600
  • IIS怎么设置应用程序池自动回收

    1、打开 IIS 管理控制台,双击“应用程序池”文件夹。 2、右击适当的应用程序池,然后单击“高级设置”。出现应用程序池的属性对话框。 3、默认回收是有一个固定时间间隔的,但是太长了 4、点击特定时间后面的三个点 5、然后点击添加按钮,接着在Value里面设置时间点,如下图所示 6、最后可以设置多个时间点,如下图所示

    2022年8月9日
    1.1K00
  • anaconda: import numpy报错:ImportError: DLL load failed: 找不到指定的模块。

    解决方法1 这个问题可能是libiomp5md.dll造成的。如果你的C:\Windows\System32目录下存在libiomp5md.dll这个dll,而numpy自己也有一个libiomp5md.dl,在C:\Users\peter\AppData\Local\Continuum\anaconda3\Library\bin\libiomp5md.dl…

    2023年4月20日
    50300

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信