标签:soft end pts 切分 百度下载 nta type 参与 root
Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache,Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat 5支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat技术先进,性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。在很多时候我们使用的Tomcat的时候,Tomcat的控制台日志会存放在Tomcat的安装目录下的日志文件夹下,日志文件名为catalina.out中,
这个日志文件如果不清理的话,会一直增长,在我以前的公司,由于疏忽,导致在生产上的这个日志增长到了好几十个GB,有了错误要看日志,根本打不开,当时使用的Linux的SED命令截取的日志,不过比较麻烦,后来经过看了一下网上的文章,发现这个日志是可以切分的,所以下面就给大家讲解一下如何切割日志,并且附带了脚本自动清理。
Tomcat的日志切分配置
上传的cronolog-1.6.2.tar.gz,到Linux的服务器的/software/目录下,文中涉及到的软件包,可以自己百度下载,或者加最下方微信,我免费发给你也可以
#cd /software/
#tar -zxvf cronolog-1.6.2.tar.gz
#cd cronolog-1.6.2
#./configure
#make
#make install
安装完之后呢我们使用命令查看命令路径
#which cronolog
如图所示:命令路径在:在/usr/local/sbin/cronolog
使用tomcat用户修改tomcat脚本如果你的tomat是用root用户启动,那么直接用root就好,但是生产环境起应用不建议用root用户,存在风险,只是建议。
修改tomcat/bin/catalina.sh(保险起见,修改之前先备份一下)
#touch "$CATALINA_OUT"
if[ "$1" = "-security" ] ; then
if [ $have_tty -eq 1 ]; then
echo "Using Security Manager"
fi
shift
eval "\"$_RUNJAVA\"""\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS$CATALINA_OPTS \
-Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\""-classpath "\"$CLASSPATH\""
-Djava.security.manager
-Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\""
-Dcatalina.base="\"$CATALINA_BASE\""
-Dcatalina.home="\"$CATALINA_HOME\""
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\""
org.apache.catalina.startup.Bootstrap“$ @”start 2>&1 \#这行是新添加的
| / usr / local / sbin / cronolog“$ CATALINA_BASE”/logs/catalina.%Y-%m-%d.out >> / dev / null&#这行是新添加的
#org.apache.catalina.startup.Bootstrap“$ @”start \#这行原来有,注释掉
#>>“$ CATALINA_OUT”2>&1“&”#这行原来,有注释掉
else
eval“\”$ _ RUNJAVA \“”“\”$ LOGGING_CONFIG \“”$ LOGGING_MANAGER $ JAVA_OPTS $ CATALINA_OPTS
-Djava.endorsed.dirs =“\”$ JAVA_ENDORSED_DIRS \“” - classpath“\”$ CLASSPATH \“”
-Dcatalina.base =“\”$ CATALINA_BASE \“”
-Dcatalina.home =“\”$ CATALINA_HOME \“”
-Djava.io.tmpdir =“\”$ CATALINA_TMPDIR \“”
org.apache.catalina.startup.Bootstrap“$ @”start 2>&1 \#这行是新添加的
| / usr / local / sbin / cronolog“$ CATALINA_BASE”/logs/catalina.%Y-%m-%d.out >> / dev / null& #这行是新添加的
#org.apache.catalina.startup.Bootstrap“$ @”start \#这行原来有,注释掉
#>>“$ CATALINA_OUT”2>&1“&”#这行原来有,注释掉
修改完之后重启把tomat,就会生成一个以当天日期为后缀的问件,如下图所示:
日志切割完成后,我们就可以做日志清理了下面是日志清理脚本
#!/bin/bash
#clear tomcat logss
DOMAIN_HOME =“/ app / tomcat” #定义tomcat所在路径
LogFileName = catalina.date +%Y-%m-%d -d‘-5 days‘
.out #处理多少天之前的tomcat日志可以自定义
cd $ {DOMAIN_HOME} /logs
if [-f $ {DOMAIN_HOME}/logs/catalina.date +%Y-%m-%d -d‘-1 days‘
.out] #压缩多少天之前的日志
then
if [-f $ {DOMAIN_HOME}/logs/${LogFileName}]
the
/usr/bin/bzip2 ${DOMAIN_HOME}/logs/${LogFileName}
/usr/bin/find . -name“*”-type f -mtime +21 -exec rm -rf {} \; #删除21天前的文件
fi
fi
exit 0
脚本定义好以后,我们把脚本放在服务器目录上的/root/scripts/目录下,叫做clear_tomcat.sh
把脚本内容复制进clear_tomcat.sh文件里,使用命令:chmod 755 clear_tomcat.sh给执行权限
然后呢,我们定义一个计划任务
#crontab -e
加入下面一行
30 22 * / bin / sh /root/scripts/clear_tomcat.sh >> / dev / null&
然后保存退出就可以了,上面的意思是每天晚上十点半的时候执行脚本,请缺人的crond服务在运行中,脚本才可以正常运行
这样的话一天一个文件,如果发生错误看后台日志也好查找一些,而且不需要担心日志文件一直增长的问题。
如果对此文有什么问题的话,请加下面微信一起探讨
Linux/Centos Tomcat 配置日志切分以及脚本自动清理
标签:soft end pts 切分 百度下载 nta type 参与 root
原文地址:http://blog.51cto.com/11233498/2129788