解决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(包含附件以及其他字段)上传附件过大时,退回到编辑页面 ...
随机推荐
- maven nexus 私服搭建 Windows版
准备工作 已安装jdk,并配置好了环境变量 已安装maven,并配置好了环境变量 下载Nexus Repository OSS:https://www.sonatype.com/download-os ...
- Veritas NetBackup 8.1.2 升级的主要理由--附升级兼容性检查网址
管理更简单 NetBackup™ 8.1.2 基于 Web 的全新直观用户界面让操作变得极度简单化,最常用操作现在只需单击几次或触摸几下即可完 成.通过台式机或移动设备可为不同角色的其他用户授予访问权 ...
- 纯数据结构Java实现(7/11)(SegmentTree)
欢迎访问我的自建博客: CH-YK Blog.
- Python时间模块。
python中时间的表示方式 unix时间戳,字符串时间,格式化时间 时间模块有,time,datetime,calendar #time模块 import time #获取本地时间戳,返回浮点数 p ...
- 随笔分类 - C++托管(clr)(转)
c#利用SWIG调用c++dll学习总结[转] 摘要: 开发环境: 操作系统:windows 7 IDE:Microsoft Visual Studio Professional 2015 SWIG: ...
- 如何解决inline-block元素的空白间距 css 完美解决
转载W3CPLUS,链接地址:http://www.w3cplus.com/css/fighting-the-space-between-inline-block-elements 有关于使用inli ...
- nodejs中判断请求来自PC端还是移动端
获取req.headers["user-agent"]: var deviceAgent = req.headers["user-agent"].toLower ...
- spark——故障排除
故障排除一:控制reduce端缓冲大小以避免OOM 在Shuffle过程,reduce端task并不是等到map端task将其数据全部写入磁盘后再去拉取,而是map端写一点数据,reduce端task ...
- 记一次部署时报java.lang.NoSuchMethodError:javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax / persistence / ValidationMode;的解决办法
楼主在部署war包的时候,本地启动不报错,服务器商报如下问题: Error creating bean with name 'entityManagerFactory' defined in clas ...
- swift函数式编程之compose
func a(en:String) -> String { return en + "a"; } func b(en:String) -> String { retur ...