Tomcat日志切割

环境

[root@server /opt/apache-tomcat-icbc/bin]# sh version.sh
Using CATALINA_BASE:   /opt/apache-tomcat-icbc
Using CATALINA_HOME:   /opt/apache-tomcat-icbc
Using CATALINA_TMPDIR: /opt/apache-tomcat-icbc/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/apache-tomcat-icbc/bin/bootstrap.jar:/opt/apache-tomcat-icbc/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
OS Name:        Linux
OS Version:     2.6.32-504.el6.x86_64
Architecture:   amd64
JVM Version:    1.7.0_71-b14
JVM Vendor:     Oracle Corporation

案例

[root@server /opt/apache-tomcat-icbc/logs]# du -sh catalina.out
210M    catalina.out

解决

# 1. 安装cronolog
[root@server ~]#yum –y install cronolog
[root@server ~]# which cronolog
/usr/sbin/cronolog

# 2. 修改bin/catalina.sh

    # 1. 找到下面行并把它用#注释掉
    touch "$CATALINA_OUT"

    # 2. 替换下面的行(有两处,不过一般在 -security 中的那一行不需要去关注,不妨两处全替换了)
    >> "$CATALINA_OUT" 2>&1 "&"
    替换为
    2>&1 |/usr/sbin/cronolog "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out" &

# 3. 重启tomcat
[root@server /opt/apache-tomcat-icbc/bin]#sh shutdown.sh
[root@server /opt/apache-tomcat-icbc/bin]#sh startup.sh