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    -mtime +7 -exec rm -rf {} \;
0 2 * * * find /opt/tomcat8-*/logs    -mtime +7 -exec rm -rf {} \;

不针对访问日志:

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

针对访问日志:

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

 

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