Linux下定时切割Tomcat日志并删除指定天数前的日志记录
时间:2019-03-31
本文章向大家介绍Linux下定时切割Tomcat日志并删除指定天数前的日志记录,主要包括Linux下定时切割Tomcat日志并删除指定天数前的日志记录使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
System.out和System.err都被打印到catalina.out。catalina.out不会rotate。一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。
1、可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息。
[root@localhost conf]# pwd /usr/local/tomcat/conf [root@localhost conf]# cp logging.properties logging.propertiesbak [root@localhost conf]# vim logging.properties 25 1catalina.org.apache.juli.FileHandler.level = FINE 26 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 27 1catalina.org.apache.juli.FileHandler.prefix = catalina.
将level级别设置成WARNING就可以大量减少日志的输出,当然也可以设置成OFF,直接禁用掉。
一般日志的级别有:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
2、使用cronolog工具切分Tomcat的catalina.out日志文件
下载、安装cronolog
[root@localhost src]# rpm -qa |grep cronolog [root@localhost src]# tar zxvf cronolog-1.6.2.tar.gz [root@localhost src]# cd cronolog-1.6.2 [root@localhost cronolog-1.6.2]# ./configure [root@localhost cronolog-1.6.2]# make && make install [root@localhost cronolog-1.6.2]# which cronolog /usr/local/sbin/cronolog [root@localhost cronolog-1.6.2]#
用which cronolog可以查到安装的路径,这个路径待会在修改catalina.sh时会用到。
修改catalina.sh 将183行修改成184行内容,注释掉355行,368、369行替换成370、371行,379、380行替换成381、382行;
[root@localhost cronolog-1.6.2]# cp /usr/local/tomcat/bin/catalina.sh /usr/local/tomcat/bin/catalina.shbak [root@localhost cronolog-1.6.2]# vim /usr/local/tomcat/bin/catalina.sh 182 if [ -z "$CATALINA_OUT" ] ; then 183 # CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out 184 CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out 185 fi ...... 355 # touch "$CATALINA_OUT" ...... 363 -Djava.security.manager \ 364 -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \ 365 -Dcatalina.base="$CATALINA_BASE" \ 366 -Dcatalina.home="$CATALINA_HOME" \ 367 -Djava.io.tmpdir="$CATALINA_TMPDIR" \ 368 # org.apache.catalina.startup.Bootstrap "$@" start \ 369 # >> "$CATALINA_OUT" 2>&1 & 370 org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \ 371 | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null & 372 373 else 374 "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \ 375 -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ 376 -Dcatalina.base="$CATALINA_BASE" \ 377 -Dcatalina.home="$CATALINA_HOME" \ 378 -Djava.io.tmpdir="$CATALINA_TMPDIR" \ 379 # org.apache.catalina.startup.Bootstrap "$@" start \ 380 # >> "$CATALINA_OUT" 2>&1 & 381 org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \ 382 | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null & 383 384 fi [root@localhost bin]# ./catalina.sh start Using CATALINA_BASE: /app/apache-tomcat-7.0.61 Using CATALINA_HOME: /app/apache-tomcat-7.0.61 Using CATALINA_TMPDIR: /app/apache-tomcat-7.0.61/temp Using JRE_HOME: /app/jdk1.7.0_79 Using CLASSPATH: /app/apache-tomcat-7.0.61/bin/bootstrap.jar:/app/apache-tomcat-7.0.61/bin/tomcat-juli.jar Tomcat started. [root@localhost bin]# service tomcat stop [root@localhost bin]# service tomcat start
可以通过./catalina.sh start 来查看配置文件是否正确;这样在/usr/local/tomcat/logs每天会自动生成catalina.%Y-%m-%d.out文件,下面我们要做的是定期清理这些过期的文件,我们可以通过crontab来实现
[root@localhost logs]# crontab -e no crontab for root - using an empty one crontab: installing new crontab [root@localhost logs]# crontab -l 30 5 * * 6 /bin/find /usr/local/tomcat/logs/ -mtime +7 -type f -name "catalina.*.out" -exec /bin/rm -f {} \; [root@localhost logs]# cat /var/spool/cron/root 30 5 * * 6 /bin/find /usr/local/tomcat/logs/ -mtime +7 -type f -name "catalina.*.out" -exec /bin/rm -f {} \; [root@localhost logs]#
日期格式串:
%a 本地简短星期名(e.g.: Sun..Sat) %A 本地完整星期名(e.g.: Sunday .. Saturday) %b 本地简短月名(e.g.: Jan .. Dec) %B 本地完整月名(e.g.: January .. December) %c 本地日期与时间(e.g.: “Sun Dec 15 14:12:47 GMT 1996″) %d 一月中的第几日(01 .. 31) %j 一年中的第几天 (001 .. 366) %m 月名的数字表示 (01 .. 12) %U 一年中以星期日为每周第一天计算的星期数(00..53, 第一周包括新年的第一个星期日) %W 一年中以星期一为每周第一天计算的星期数(00..53, 第一周包括新年的第一个星期一) %w 星期名的数字表示 (0 .. 6, 0为星期日) %x 本地日期 (e.g. 今天在北京是: “15/12/96″) %y 不带世纪的年(00 .. 99) %Y 带世纪的年(1970 .. 2038)
时间格式串:
%H 24小时制小时(00..23) %I 12小时制小时(01..12) %p 本地AM/PM指示符 %M 分钟(00..59) %S 秒(00..61) %X 本地时间(e.g.: “15:12:47″) %Z 时区 (e.g. GMT),如果不能检测出时区,值为空
特殊格式串:
%% %字符 %n 新行 %t tab字符
总结
以上所述是小编给大家介绍的Linux下定时切割Tomcat日志并删除指定天数前的日志记录,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
- 通过Pandas实现快速别致的数据分析
- R语言中的非线性分类
- 用SPSS做数据分析?先弄懂SPSS的基础知识吧
- 学习笔记CB001:NLTK库、语料库、词概率、双连词、词典
- 时序列数据库武斗大会之 OpenTSDB 篇
- 应当使用 SQLite 的五个原因
- Apache Spark作为编译器:深入介绍新的Tungsten执行引擎
- DC/OS 的安装与部署
- Go语言实践:从新手入门到上线真实的小型服务所遇到的那些坑
- 4个简单的数据管理技巧
- MongoDB的设计模式策略
- 如何用容器实现生产级Redis sharding集群一键交付
- Hadoop旧mapreduce的map任务切分原理
- 解读Neo4j全新的Python驱动程序
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法