转自:http://blog.51cto.com/13178102/2070532
tomcat日志切割和定期删除
在tomcat的软件环境中,如果我们任由日志文件无限增长,总有一天会将磁盘占满的(废话)。特别是在日志文件增长速度很快的一些情况下,按日志切割日志文件并删除,就是一件很有必要的工作了,以下介绍了切割日志文件的方法。
第1章 系统环境
1.1 操作系统环境
<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:#999999">[</span>root@server1 ~<span style="color:#999999">]</span><span style="color:slategray"># cat /etc/redhat-release</span>
CentOS release 6.5 <span style="color:#999999">(</span>Final<span style="color:#999999">)</span>
<span style="color:#999999">[</span>root@server1 ~<span style="color:#999999">]</span><span style="color:slategray"># uname -r</span>
2.6.32-431.el6.x86_64
<span style="color:#999999">[</span>root@server1 ~<span style="color:#999999">]</span><span style="color:slategray"># uname -m</span>
x86_64</code></span></span>
1.2 jdk环境
<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:#999999">[</span>root@server1 ~<span style="color:#999999">]</span><span style="color:slategray"># java -version</span>
java version <span style="color:#669900">"1.7.0_67"</span>
Java<span style="color:#999999">(</span>TM<span style="color:#999999">)</span> SE Runtime Environment <span style="color:#999999">(</span>build 1.7.0_67-b01<span style="color:#999999">)</span>
Java HotSpot<span style="color:#999999">(</span>TM<span style="color:#999999">)</span> Server VM <span style="color:#999999">(</span>build 24.65-b04, mixed mode<span style="color:#999999">)</span></code></span></span>
1.3 tomcat环境
<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:#999999">[</span>root@server1 ~<span style="color:#999999">]</span><span style="color:slategray"># /opt/gw/tomcat7/bin/catalina.sh version</span>
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 <span style="color:slategray">#<==tomcat-7.5.57版本</span>
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</code></span></span>
第2章 切割工具cronolog
2.1 cronolog的介绍
Cronolog是一个过滤器程序,它从标准输入读取日志文件条目,并将每个条目写入由文件名模板和当前日志所指定的输出文件中。 当扩展文件名改变时,关闭当前文件,并打开一个新文件。 Cronolog是为了与Apache等Web服务器一起使用,将访问日志分为每日或每月日志。
2.2 cronolog的安装
2.2.1 下载cronolog
<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:#dd4a68">cd</span> /usr/local/src
<span style="color:#dd4a68">wget</span> https://files.cnblogs.com/files/crazyzero/cronolog-1.6.2.tar.gz
<span style="color:#999999">[</span>root@kafka01 src<span style="color:#999999">]</span><span style="color:slategray"># md5sum cronolog-1.6.2.tar.gz</span>
a44564fd5a5b061a5691b9a837d04979 cronolog-1.6.2.tar.gz <span style="color:slategray">#<==cronolog的MD5码</span></code></span></span>
2.2.2 编译安装
<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:#999999">[</span>root@kafka01 src<span style="color:#999999">]</span><span style="color:slategray"># tar xf cronolog-1.6.2.tar.gz</span>
<span style="color:#999999">[</span>root@kafka01 src<span style="color:#999999">]</span><span style="color:slategray"># cd cronolog-1.6.2</span>
<span style="color:#999999">[</span>root@kafka01 cronolog-1.6.2<span style="color:#999999">]</span><span style="color:slategray"># ./configure #<==编译,此前先确保安装cmake等编译工具</span>
<span style="color:#999999">[</span>root@kafka01 cronolog-1.6.2<span style="color:#999999">]</span><span style="color:slategray"># make && make install #<==安装</span>
<span style="color:#999999">[</span>root@kafka01 cronolog-1.6.2<span style="color:#999999">]</span><span style="color:slategray"># which cronolog #<==检查是否安装成功,如果有结果则安装成功</span>
/usr/local/sbin/cronolog</code></span></span>
2.3 cronolog命令
<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:#999999">[</span>root@server1 ~<span style="color:#999999">]</span><span style="color:slategray"># which cronolog</span>
/usr/local/sbin/cronolog <span style="color:slategray">#<==cronolog命令的存放路径</span>
使用man帮助命令查看cronolog使用语法:
<span style="color:#999999">[</span>root@server1 ~<span style="color:#999999">]</span><span style="color:slategray"># man cronolog</span>
NAME
cronolog - <span style="color:#dd4a68">write</span> log messages to log files named according to a template
SYNOPSIS
cronolog <span style="color:#999999">[</span>OPTION<span style="color:#999999">]</span><span style="color:#999999">..</span>. template</code></span></span>
第3章 配置tomcat日志切割
配置日志切割,只需修改配置文件catalina.sh(如果windows则是catalina.bat,这里不介绍windows情况)即可。大概在catalina文件中的第380行和第390行左右,修改如下:
(1)内容:
<span style="color:#333333"><span style="color:black"><code class="language-bash">org.apache.catalina.startup.Bootstrap <span style="color:#669900">"<span style="color:#ee9900">$@</span>"</span> start \
<span style="color:#9a6e3a">>></span> <span style="color:#669900">"<span style="color:#ee9900">$CATALINA_OUT</span>"</span> 2<span style="color:#9a6e3a">></span><span style="color:#9a6e3a">&</span>1 <span style="color:#669900">"&"</span></code></span></span>
替换为:
<span style="color:#333333"><span style="color:black"><code class="language-bash">org.apache.catalina.startup.Bootstrap <span style="color:#669900">"<span style="color:#ee9900">$@</span>"</span> start \
2<span style="color:#9a6e3a">></span><span style="color:#9a6e3a">&</span>1 <span style="color:#9a6e3a">|</span>/usr/local/sbin/cronolog <span style="color:#669900">"<span style="color:#ee9900">$CATALINA_BASE</span>/logs/catalina-%Y-%m-%d.out"</span> <span style="color:#9a6e3a">&</span></code></span></span>
(2)内容:
<span style="color:#333333"><span style="color:black"><code class="language-bash">org.apache.catalina.startup.Bootstrap <span style="color:#669900">"<span style="color:#ee9900">$@</span>"</span> start \
<span style="color:#9a6e3a">>></span> <span style="color:#669900">"<span style="color:#ee9900">$CATALINA_OUT</span>"</span> 2<span style="color:#9a6e3a">></span><span style="color:#9a6e3a">&</span>1 <span style="color:#669900">"&"</span></code></span></span>
替换为:
<span style="color:#333333"><span style="color:black"><code class="language-bash">org.apache.catalina.startup.Bootstrap <span style="color:#669900">"<span style="color:#ee9900">$@</span>"</span> start \
2<span style="color:#9a6e3a">></span><span style="color:#9a6e3a">&</span>1 <span style="color:#9a6e3a">|</span>/usr/local/sbin/cronolog <span style="color:#669900">"<span style="color:#ee9900">$CATALINA_BASE</span>/logs/catalina-%Y-%m-%d.out"</span> <span style="color:#9a6e3a">&</span></code></span></span>
配置完成后,重启tomcat即可!!!!
第4章 定时删除过期日志
在这里直接使用linux自带的crontab定时任务工具,设置每天凌晨00:00执行删除任务,删除7天以前的日志文件。
<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:#dd4a68">crontab</span> -e <span style="color:slategray">#<==直接输入该命令,添加一个定时任务计划</span>
00 00 * * * /bin/find /opt/gdyy/tomcat7/logs/ -type f -mtime +7 <span style="color:#9a6e3a">|</span> <span style="color:#dd4a68">xargs</span> <span style="color:#dd4a68">rm</span> -f <span style="color:#9a6e3a">&</span><span style="color:#9a6e3a">></span>/dev/null <span style="color:slategray">#<==查找tomcat/logs下面的日志文件,并删除7天以前的日志,添加完成后保存退出!!</span></code></span></span>
<span style="color:#333333"><span style="color:black"><code class="language-bash"><span style="color:#999999">[</span>root@server1 ~<span style="color:#999999">]</span><span style="color:slategray"># crontab -l #<==查看定时任务计划</span>
<span style="color:slategray">#remove gw log 7 days ago by liutao at 2018-02-08</span>
00 00 * * * /bin/find /opt/gw/tomcat7/logs/ -type f -mtime +7 <span style="color:#9a6e3a">|</span> <span style="color:#dd4a68">xargs</span> -i <span style="color:#dd4a68">mv</span> <span style="color:#999999">{</span><span style="color:#999999">}</span> /data/bak/gw_log/ <span style="color:#9a6e3a">&</span><span style="color:#9a6e3a">></span>/dev/null</code></span></span>
tomcat日志切割并定时删除完成!!!
crontab 的安装和基本运用 https://www.cnblogs.com/beyang/p/7039820.html