解决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(包含附件以及其他字段)上传附件过大时,退回到编辑页面 ...
随机推荐
- PAT 乙级 1004.成绩排名 C++/Java
1004 成绩排名 (20 分) 题目来源 读入 n(>)名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式: 每个测试输入包含 1 个测试用例,格式为 第 1 行 ...
- html中定位详解
首先,我们来讨论一下html中共有几种定位方式:静态定位(static),相对定位(relative),绝对定位(absolute,fixed).其中fixed又叫固定定位,它是属于绝对定位的一种,但 ...
- Django 数据库查询集合(多对多)
Django 数据库查询集合(双下划线连表操作) 目录: 1.Django环境搭建 2.数据库建表 3.写入数据 4.查询语句 Django环境搭建 1.安装django pip install dj ...
- IE haslayout 问题引起的常见 bug
http://www.qianduan.net/comprehensive-haslayout/ 要想更好的理解 css, 尤其是 IE 下对 css 的渲染,haslayout 是一个非常有必要彻底 ...
- POJ - 1981 :Circle and Points (圆的扫描线) hihocoder1508
题意:给定N个点,然后给定一个半径为R的圆,问这个圆最多覆盖多少个点. 思路:在圆弧上求扫描线. 如果N比较小,不难想到N^3的算法. 一般这种覆盖问题你可以假设有两个点在圆的边界上,那么每次产生的圆 ...
- ECMAScript规范解读this
在<JavaScript深入之执行上下文栈>中讲到,当JavaScript代码执行一段可执行代码(executable code)时,会创建对应的执行上下文(execution conte ...
- day006-python函数
一.定义函数 def 函数名(): 函数体代码 例: #定义函数 def email(): print('send email') #调用执行函数 email() 二.函数的返回值 def email ...
- PHP字符串比较函数详解
在PHP中,对于字符串之间的比较有很多种方法,第一种是使用 strcmp()函数和 strcasecmp()函数按照字节进行比较,第二种是使用 strnatcmp()函数按照自然排序法进行比较,第三种 ...
- learning shell monitor prog function
[Purpose] Shell script monitor prog function [Eevironment] Ubuntu 16.04 bash env [ ...
- 异常0xc000041d的抛出过程
为了说明这个过程,我们必须写一个示例程序,如下: #include "stdafx.h" #include <tchar.h> #include <stdio.h ...