阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Tomcat日志切割和定期删除

183次阅读
没有评论

共计 2845 个字符,预计需要花费 8 分钟才能阅读完成。

在 Tomcat 的软件环境中,如果我们任由日志文件无限增长,总有一天会将磁盘占满的(废话)。特别是在日志文件增长速度很快的一些情况下,按日志切割日志文件并删除,就是一件很有必要的工作了,以下介绍了切割日志文件的方法。

第 1 章 系统环境
1.1 操作系统环境
[root@server1 ~]# cat /etc/RedHat-release
CentOS release 6.5 (Final)
[root@server1 ~]# uname -r
2.6.32-431.el6.x86_64
[root@server1 ~]# uname -m
x86_64

1.2 jdk 环境
[root@server1 ~]# java -version
java version “1.7.0_67”
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) Server VM (build 24.65-b04, mixed mode)

1.3 tomcat 环境
[root@server1 ~]# /opt/gw/tomcat7/bin/catalina.sh version
Using CATALINA_BASE:  /opt/gw/tomcat7
Using CATALINA_HOME:  /opt/gw/tomcat7
Using CATALINA_TMPDIR: /opt/gw/tomcat7/temp
Using JRE_HOME:        /usr/local/jdk1.7
Using CLASSPATH:      /opt/gw/tomcat7/bin/bootstrap.jar:/opt/gw/tomcat7/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.57
Server built:  Nov 3 2014 08:39:16 UTC
Server number:  7.0.57.0                #<==tomcat-7.5.57 版本
OS Name:        Linux
OS Version:    2.6.32-431.el6.x86_64
Architecture:  i386
JVM Version:    1.7.0_67-b01
JVM Vendor:    Oracle Corporation

第 2 章 切割工具 cronolog
2.1 cronolog 的介绍
Cronolog 是一个过滤器程序,它从标准输入读取日志文件条目,并将每个条目写入由文件名模板和当前日志所指定的输出文件中。当扩展文件名改变时,关闭当前文件,并打开一个新文件。Cronolog 是为了与 Apache 等 Web 服务器一起使用,将访问日志分为每日或每月日志。

2.2 cronolog 的安装
2.2.1 下载 cronolog
cd /usr/local/src
wget  https://files.cnblogs.com/files/crazyzero/cronolog-1.6.2.tar.gz
[root@kafka01 src]# md5sum cronolog-1.6.2.tar.gz
a44564fd5a5b061a5691b9a837d04979  cronolog-1.6.2.tar.gz        #<==cronolog 的 MD5 码

2.2.2 编译安装
[root@kafka01 src]# tar xf cronolog-1.6.2.tar.gz
[root@kafka01 src]# cd cronolog-1.6.2
[root@kafka01 cronolog-1.6.2]# ./configure          #<== 编译,此前先确保安装 cmake 等编译工具
[root@kafka01 cronolog-1.6.2]# make && make install #<== 安装
[root@kafka01 cronolog-1.6.2]# which cronolog      #<== 检查是否安装成功,如果有结果则安装成功
/usr/local/sbin/cronolog

2.3 cronolog 命令

[root@server1 ~]# which cronolog
/usr/local/sbin/cronolog            #<==cronolog 命令的存放路径
使用 man 帮助命令查看 cronolog 使用语法:
[root@server1 ~]# man cronolog
NAME
      cronolog – write log messages to log files named according to a template
 
SYNOPSIS
      cronolog [OPTION]… template

第 3 章 配置 tomcat 日志切割
配置日志切割,只需修改配置文件 catalina.sh(如果 windows 则是 catalina.bat,这里不介绍 windows 情况)即可。大概在 catalina 文件中的第 380 行和第 390 行左右,修改如下:

(1)内容:

org.apache.catalina.startup.Bootstrap “$@” start \
>> “$CATALINA_OUT” 2>&1 “&”

替换为:

org.apache.catalina.startup.Bootstrap “$@” start \
2>&1 |/usr/local/sbin/cronolog “$CATALINA_BASE/logs/catalina-%Y-%m-%d.out” &

(2)内容:

org.apache.catalina.startup.Bootstrap “$@” start \
>> “$CATALINA_OUT” 2>&1 “&”

替换为:

org.apache.catalina.startup.Bootstrap “$@” start \
2>&1 |/usr/local/sbin/cronolog “$CATALINA_BASE/logs/catalina-%Y-%m-%d.out” &

配置完成后,重启 tomcat 即可!!!!

第 4 章 定时删除过期日志
在这里直接使用 linux 自带的 crontab 定时任务工具,设置每天凌晨 00:00 执行删除任务,删除 7 天以前的日志文件。

crontab -e          #<== 直接输入该命令,添加一个定时任务计划
00 00 * * * /bin/find /opt/gdyy/tomcat7/logs/ -type f -mtime +7 | xargs rm -f  &>/dev/null  #<== 查找 tomcat/logs 下面的日志文件,并删除 7 天以前的日志,添加完成后保存退出!!

[root@server1 ~]# crontab -l    #<== 查看定时任务计划
#remove gw log 7 days ago by liutao at 2018-02-08
00 00 * * * /bin/find /opt/gw/tomcat7/logs/ -type f -mtime +7 | xargs -i mv {} /data/bak/gw_log/  &>/dev/null

tomcat 日志切割并定时删除完成!!!

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2845字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中