tomcat日志轮转🍪

tomcat日志轮转🍩🍪


 

logrotate 是一个用于管理和轮转日志文件的工具,通常在类 Unix 系统中使用。它可以帮助系统管理员自动化日志文件的管理,防止日志文件占用过多的磁盘空间。以下是关于 logrotate 服务的详细介绍,包括其工作原理、配置方法和常见用法。

工作原理

logrotate 的主要功能是定期轮转、压缩、删除和邮件发送日志文件。它通过读取配置文件来确定哪些日志文件需要轮转以及如何轮转。logrotate 通常在系统的 cron 作业中定期运行,通常是每天或每周。

配置文件

logrotate 的配置文件通常位于 /etc/logrotate.conf,并且可以在 /etc/logrotate.d/ 目录中为特定应用程序创建单独的配置文件。

一、为tomcat配置logrorate轮转

① 匹配/opt/目录下所有以tomcat7-开头或tomcat8-*开头的目录

[root@localhost ~]# vim /etc/logrorate.d/tomcat7
/opt/tomcat7-*/logs/catalina.out {
    su root root
    daily
    rotate 15
    missingok
    dateext
    compress
    notifempty
    copytruncate
    size 20M
}

这个配置将会对每个匹配的catalina.out日志文件执行以下操作:

  • su root root:在执行日志轮换时,切换到root用户。
  • daily:每天执行日志轮换。
  • rotate 15:保留最近的15个日志文件。
  • missingok:如果日志文件在轮换时不存在,不报错。
  • dateext:使用日期扩展来命名日志文件,例如catalina.out-2023-04-01.log.gz
  • compress:轮换后的日志文件将被压缩。
  • notifempty:如果日志文件为空,不执行轮换。
  • copytruncate:在日志轮换时,复制日志文件然后截断原始文件,而不是移动文件。
  • size 20M:当日志文件达到20MB时执行轮换。 

② 单独匹配某个目录

[root@localhost ~]# vim  /etc/logrotate.d/tomcat 

/opt/tomcat7-2/logs/catalina.out {
su root root                                               (如有权限问题,添加此条)
daily
rotate 15
missingok
dateext
compress
notifempty
copytruncate
size 20M
}

 手动截断日志

[root@localhost ~]# logrotate --force /etc/logrotate.d/tomcat

二、业务日志清理(配合crontab):

/opt/tomcat7-1/logs

/opt/tomcat7-2/logs

直接匹配 tomcat7-* 或 tomcat8-* 目录

[root@localhost ~]# crontab  -e
0 2 * * * find /opt/tomcat7-*/logs  -type f  -mtime +7 -exec rm -rf {} \;
0 2 * * * find /opt/tomcat8-*/logs  -type f  -mtime +7 -exec rm -rf {} \;

不针对访问日志:

[root@localhost ~]# crontab -e
0 2 * * * find /opt/tomcat7-1/logs  -type f  -mtime +7 -exec rm -rf {} \;
0 2 * * * find /opt/tomcat7-2/logs  -type f  -mtime +7 -exec rm -rf {} \;

针对访问日志:

[root@localhost ~]# crontab -e

0 2 * * * find /opt/tomcat7-1/logs  -name 'localhost_access_log.202*' -type f -mtime +7 -exec rm -rf {} \;
0 2 * * * find /opt/tomcat7-1/logs  -name 'localhost.202*'            -type f -mtime +7 -exec rm -rf {} \;

0 2 * * * find /opt/tomcat7-2/logs  -name 'localhost_access_log.202*' -type f -mtime +7 -exec rm -rf {} \;
0 2 * * * find /opt/tomcat7-2/logs  -name 'localhost.202*'            -type f -mtime +7 -exec rm -rf {} \;

 

posted @ 2022-07-04 09:12  Noleaf  阅读(244)  评论(0)    收藏  举报