解决catalina.out文件过大的问题
有用Tomcat的人,绝对都会遇到这样一个问题:catalina.out文件过大。
它是Tomcat默认生成的日志文件,会随着时间的推移,逐渐增大,不断的增长,甚至达到几G,几十G的大小。由于文件过大,不仅占系统的存储,我们还将无法使用过常规的编辑工具进行查看,严重影响系统的维护工作。
对此,出现了以下几种解决catalina.out文件过大的方案。
简洁型
1.手动版
每次监控到tomcat的硬盘空间变小达到阈值,手动登陆服务器,切换到tomcat的logs下,手动清空
echo " " > catalina.out
2.脚本版
编写脚本,放入计划任务中,定时清空
crontab -e
0 24 * * * sh /root/qin_catalina.out.sh
vim qin_catalina.out.sh
#!/usr/bin/bash
echo " " > catalina.out
技术型
1.日志切割工具版0.1
使用cronolog日志切分工具切分Tomcat的catalina.out日志文件
<1>下载cronolog,并进行安装
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz (中国服务器可能无法下载或下载缓慢,可先下载到境外服务器上)
tar zxvf cronolog-1.6.2.tar.gz
./cronolog-1.6.2/configure
make
make install
(默认安装在/usr/local/sbin下)
<2>.配置
在tomcat/bin/catalian.sh中
org.apache.catalina.startup.Bootstrap "$@" start \ >> "$CATALINA_BASE"/logs/catalina.out 2&1 &
改成:
org.apache.catalina.startup.Bootstrap"$@" start \ |/usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null 2>&1 &
或
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \ | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
并注释 touch "$CATALINA_OUT"
<3>重启Tomcat
Tomcat输出日志文件分割成功,输出log文件格式变为:catalina.2017-05-15.out
1.日志切割工具版0.2
CentOS6.5后自带logrotate程序,可以解决catalina.out的日志轮转问题
<1>在/etc/logrotate.d/目录下新建一个tomcat的文件
cat >/etc/logrotate.d/tomcat
/usr/local/tomcat/logs/catalina.out{ 要轮转的文件
copytruncate 创建新的catalina.out副本,截断源catalina.out文件
daily 每天进行catalina.out文件的轮转
rotate 7 至多保留7个副本
missingok 文件丢失了,轮转不报错
compress 使用压缩
size 16M 当catalina.out文件大于16MB,就轮转
}
<2>当执行以上操作时是自动执行的,也可手动切割
logrotate /etc/logrotate.conf
如果只轮转tomcat配置文件,要指定文件
logrotate --force /etc/logrotate.d/tomcat
<3>删除要清理的日志
手工查找需要清理的日志文件
cd /usr/local/tomcat/logs
rm -rf catalina.out.4.gz
2.日志切割脚本版
使用cron每天来定时备份当前的catalina.out,然后清空他的内容;
<1>crontab -e
30 * * * * sh /root/qie_catalina.out.sh
<2>cat qie_catalina.out.sh 参考脚本
#!/bin/bash
y=`date "+%Y"`
m=`date "+%m"`
d=`date "+%d"`
cp /etc/tomcat/logs/catalina.out /etc/tomcat/logs/`catalina.out.$y_$m_$d`
echo " " > catalina.out
3.修改日志级别版
日志级别:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
<1>修改conf/logging.properties日志配置文件,将level级别设置成WARNING减少日志的输出。也可以设置成OFF,直接禁用。
catalina.org.apache.juli.FileHandler.level = WARNING
catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
catalina.org.apache.juli.FileHandler.prefix = catalina.
解决catalina.out文件过大的问题的更多相关文章
- [转载]Linux下tomcat的catalina.out文件过大,以及目录更改解决办法
原文链接:http://liyan0524.iteye.com/blog/1285644 方法1—分割流 使用cronolog工具切分Tomcat的catalina.out日志文件 cronolog一 ...
- 解决redis aof文件过大的问题
执行BGREWRITEAOF命令对redis的AOF进行重写 redis-cli BGREWRITEAOF 相关解释: Redis的AOF机制有点类似于Mysql binlog,是Redis的提供的一 ...
- Tomcat日志catalina.out文件过大的处理方法
原文地址:http://lcbk.net/tomcat/1396.html 我们知道一般企业使用Tomcat 作为Web端时,它产生的日志会越来越大,特别是catalina.out这个日志文件,然而有 ...
- sql点滴39—解决数据库日志文件过大的问题
随着数据库使用时间增长,日志文件也在不停的增大,这里介绍几种方法减小这个文件的方法. 1.直接删除log文件(一般不建议) 分离数据库.分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任 ...
- 解决sql脚本文件太大无法打开的问题
as we known,sql数据库高版本向低版本还原是不太可能但是又经常会碰到的事,今天实测了一种方法 步骤:任务—>生成脚本—> 下一步->高级,选择数据库版本和编写脚本数据类型 ...
- SQL数据库从高版本到低版本的迁移,同时解决sql脚本文件太大无法打开的尴尬问题
as we known,sql数据库高版本向低版本还原是不太可能但是又经常会碰到的事,今天实测了一种方法 步骤:任务—>生成脚本—> 下一步->高级,选择数据库版本和编写脚本数据类型 ...
- Nginx开启gzip压缩解决react打包文件过大
用create-react-app创建的react应用打包之后的build js有1M之多. 采用gzip打包传输,可以节约70%左右的带宽 nginx采用gzip打包方式 在nginx配置中添加如下 ...
- 解决asp.net上传文件时文件太大导致的错误
即使在web.config中添加了节点和设置依然是不行的,还是报文件太大的错误, <httpModules> <add name="UploadHttpModu ...
- 关于php上传文件过大的表单回填
也许标题有点绕口,有点无法让人理解.请原谅博主,语文学的不好,都赖体育老师. 问题场景重现:在某次迭代中,接到这样一个需求:当新建或编辑一个Bug(包含附件以及其他字段)上传附件过大时,退回到编辑页面 ...
随机推荐
- C++学习(8)—— 封装
C++面向对象的三大特性:封装.继承.多态 C++认为万事万物都可以为对象,对象上有其属性和行为 具有相同性质的对象,可以抽象为类 1. 封装的意义 封装是C++面向对象三大特性之一 封装的意义: ...
- TKey SSO 单点登录系统介绍
Introduction TKey = Token Key 以 OAuth 2.0 标准为接口设计原则的单点登录系统(SSO) 初衷: 做国内各种登录场景的配件,以完善的学习资料为主核心竞争力 纯粹的 ...
- ROS学习(更新中~)
1.一次把ROS环境变量都自动配置好(即添加到bash会话中)echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc ...
- 证明StringBuffer线程安全,StringBuilder线程不安全
证明StringBuffer线程安全,StringBuilder线程不安全证明StringBuffer线程安全StringBuilder线程不安全测试思想测试代码结果源码分析测试思想分别用1000个线 ...
- 阿里云部署,ubuntu, 连接服务器 |更新源| 安装node |安装mysql
1.连接服务器 xshell 新建连接 ssh root@1.1.1.1 2.更新源 apt-get update 3.安装node apt-get install -y curl curl -sL ...
- what-is-the-difference-between-type-and-class
Inspired by Wikipedia... In type theory terms; A type is an abstract interface. Types generally repr ...
- 异步链式编程—promise沉思录
一.promise的组成 1.task:promise要完成的任务: 2.result:处理完的数据: 3.status:状态: 4.fulfill.reject(对应catch) 5.Resolve ...
- 监听localStorage中的数据变化
问题描述:我们在js里面获取了某一个localstorage的值,但是后期它可能改变了,我们js只执行一遍没办法再次获取它的值,当然可以刷新页面获取,但如果是我们的但页面就不能刷新页面了,此时:我们可 ...
- memoryDiary
What did you accomplish today? , did you exercise today? Do you care about the people around you tod ...
- 工作拾记 - 关于easyui模板后台改为vue-element
图1: 数据接口,模拟实现一些基本的数据条目 图2: 获取数据,接口都在src/api中 TODO LIST: 接下来要做的呢: 1. 完善此demo,基本的CURD,现在只有getAll,需要将增加 ...