tomcat日志切割和定期删除

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

第1章 系统环境

1.1 操作系统环境

[[email protected] ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[[email protected] ~]# uname -r
2.6.32-431.el6.x86_64
[[email protected] ~]# uname -m
x86_64

1.2 jdk环境

[[email protected] ~]# 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环境

[[email protected] ~]# /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
[[email protected] src]# md5sum cronolog-1.6.2.tar.gz
a44564fd5a5b061a5691b9a837d04979  cronolog-1.6.2.tar.gz         #<==cronolog的MD5码

2.2.2 编译安装

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

2.3 cronolog命令

[[email protected] ~]# which cronolog
/usr/local/sbin/cronolog            #<==cronolog命令的存放路径
使用man帮助命令查看cronolog使用语法:
[[email protected] ~]# 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 "[email protected]" start >> "$CATALINA_OUT" 2>&1 "&"

替换为:

org.apache.catalina.startup.Bootstrap "[email protected]" start 2>&1 |/usr/local/sbin/cronolog "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out" &

(2)内容:

org.apache.catalina.startup.Bootstrap "[email protected]" start >> "$CATALINA_OUT" 2>&1 "&"

替换为:

org.apache.catalina.startup.Bootstrap "[email protected]" 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天以前的日志,添加完成后保存退出!!
[[email protected] ~]# 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日志切割并定时删除完成!!!

原文地址:http://blog.51cto.com/13178102/2070532

时间: 2025-01-08 13:03:26

tomcat日志切割和定期删除的相关文章

nginx日志分割并定期删除

#!/bin/bash #切割nginx的日志,然后定期删除 source /etc/profile log_path=/usr/local/nginx/logs d=`date +%Y-%m-%d` d90=`date -d'5 day ago' +%Y-%m-%d`   ##5天前 cd ${log_path} && cp access.log $log_path/backuplog/accesslog$d.log gzip -f $log_path/backuplog/accessl

Tomcat日志切割(logrotate)

logrotate是个强大的系统软件,它对日志文件有着一套完整的操作模式,譬如:转储.邮件和压缩等,并且默认logrotate加到cron(/etc/cron.daily/logrotate)作为每日任务执行.自动有了logrotate,我想不用再自己写日志切割脚本. 如下对Tomcat日志catalina.out日志切割 # ls -lh /usr/local/tomcat/logs/catalina.out -rw-r--r-- 1 www www 14M Aug 28 15:55 /usr

tomcat 日志切割

一.日志切割介绍 tomcat日志一般产生的是比较大的,catalina.out文件一般占用比较大,如果不做切割的话,很容易占满存储磁盘,一般需要做切割,切割的方法有多种,现介绍一种系统自动的日志切割的工具:logrotate软件,一般是系统自动的,非常好用. 二.使用logrotate分割tomcat日志 logrotate是个强大的系统软件,它对日志有着一套完整的操作模式,譬如:转存.邮件和压缩等,并且默认logrotate加到cron(/etc/cron.daily/logrotate)作

Tomcat日志切割

logrotate是个强大的系统软件,它对日志文件有着一套完整的操作模式,譬如:转储.邮件和压缩等,并且默认logrotate 加到cron(/etc/cron.daily/logrotate)作为每日任务执行.自动有了logrotate,我想不用再自己写日志切割脚本. 如下对Tomcat日志catalina.out日志切割   如下对Tomcat日志catalina.out日志切割 ls -lh /usr/local/tomcat/logs/catalina.out # cat /etc/lo

使用cronolog实现tomcat日志切割

背景: Tomcat的日志catalina.out在使用过程中会不断增长,当日志过大时,可能会对tomcat的性能产生影响. 使用日志切割的方法,可以有效解决日志过大的问题.它可以把日志按天进行切割存储,每天产生一个日志文件存储日志. 操作: 1:下载,解压,安装cornolog工具(由于http://cronolog.org冒似不能用了,推荐使用yum方式安装) # yum -y install cronolog.x86_64 2:配置catalina.sh文件(tomcat6.0与tomca

tomcat日志切割catalina.out

法一:利用系统logrotate命令来实现tomcat的日志切割 先定义tomcat的pid 文件 修改$TOMCAT_HOME/bin/catalina.sh文件,大约在128行左右,在PRGDIR下面一行添加CATALINA_PID参数行,修改完成后应该跟下面相同. # Get standard environment variables PRGDIR=`dirname "$PRG"` CATALINA_PID=/var/run/tomcat.pid #CATALINA_PID=$

tomcat 日志切割shell脚本

vim tomcat_cut.sh #!/bin/bash log_path=/opt/tomcat8080/logs d=`date +%Y-%m-%d` d4=`date -d'30 day ago' +%Y-%m-%d` cd ${log_path} && cp catalina.out $log_path/catalina.out.$d.log echo > catalina.out rm -rf $log_path/catalina.out.${d4}.log # chmo

利用logrotate定期生成日志,并且定期删除,适用于系统上面所有的日志

详细介绍 http://blog.csdn.net/hepeng597/article/details/7768615 参考 http://www.linuxidc.com/Linux/2011-04/34116.htm 1  比如 我们要切割nginx的日志,首先我们进入/etc/logrotate.d/这个目录下,然后建立nginx这个文件 vi  nginx /data/wwwlogs/*nginx.log {       ##日志所在的目录 daily rotate 5 missingo

【Tomcat】Tomcat日志切割

下载并解压缩 cronolog # tar zxvf cronolog-1.6.2.tar.gz 2.进入cronolog安装文件所在目录 # cd cronolog-1.6.2 3.运行安装 # ./configure # make # make install 4.查看cronolog安装后所在目录(验证安装是否成功) # which cronolog 正常情况下显示: /usr/local/sbin/cronolog 5.要想分割tomcat的catalina.out,需作如下工作: To