`
lomis
  • 浏览: 11212 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

按天分割备份Catalina.out

阅读更多

因公司项目用的是Tomcat,因为长时间运行导致Catalina.out文件过大,而影响运行效率。故设法解决此问题, 网上搜索到的处理方式都比较的繁琐,本人经过尝试最终效果都不是很理想,经过多次实验,把本人的处理方式记录如下:

1. 基本思路:首先把catalina.out文件定时备份,为了节省空间可以进行压缩(文档的压缩比还是挺高的)。    需要处理两个问题:编写按天备份压缩的脚本和设置系统任务定时执行脚本。

2.脚本内容:

#!/bin/bash
#By:Lomis, Time:2015/09/07, Version:1.0
# 本脚本主要用于隔天定时备份Tomcat的catalina.out日志.

##定义变量
tomcat_path="/usr/local/webapps/tomcat-7";
tomcat_log_path=$tomcat_path"/logs";

##获取时间
today=$(date +%Y-%m-%d);
log_file="catalina.out";
bak_file="catalina."$today".log";
bak_gz_file="catalina."$today".tar.gz";

if [ ! -f $tomcat_log_path"/"$bak_gz_file ];then
        if [ ! -f $tomcat_log_path"/"$log_file ]; then
                exit 0;
        fi
        if [ ! -f $tomcat_log_path"/"$bak_file ];then
           ##把新的日志连接到日志文件的末尾
           cat $tomcat_log_path"/"$log_file $tomcat_log_path"/"$bak_file;
        else
           ##复制文件
           echo 执行命令:cp -rf $tomcat_log_path"/"$log_file $tomcat_log_path"/"$bak_file;
           cp -rf $tomcat_log_path"/"$log_file $tomcat_log_path"/"$bak_file;
        fi

        ##清空catalina.out文件
        echo 执行命令:echo "" > $tomcat_log_path"/"$log_file;
        echo "" > $tomcat_log_path"/"$log_file;

        ##压缩备份文件
        echo 执行命令: tar -zcPvf $tomcat_log_path"/"$bak_gz_file $tomcat_log_path"/"$bak_file;
        tar -zcPvf $tomcat_log_path"/"$bak_gz_file $tomcat_log_path"/"$bak_file;

        ##删除原备份文件
        echo 执行命令: rm -rf $tomcat_log_path"/"$bak_file;
        rm -rf $tomcat_log_path"/"$bak_file;

fi
###删除30天前的日志文件
find $tomcat_log_path"/" -mtime +30 -name "*.log" -exec rm -rf {} \;

 因为脚本中我加了注释,就不多做解释了。

 

3.设置定时任务

   linux的定时任务需要用到crontab,。

   查询的资料说这个服务一般在安装系统的时候都会安装,但不会自己启动,需要自己手动启动下。

   但也有的linux系统可能没有安装,那就自己动手安装下。因为我的是centos系统,我用了yum install -y vixie-cron 这个命令进行的安装(安装很简单,不再赘述)。

  关于定时任务的设置,有个文章介绍的很详细,这里我把地址拿过来了:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html

 

我最终的定时任务设置:

57 23 * * * /usr/local/webapps/program/bakCatalina.sh

 


此方法可行,已经在我们的线上环境运行1个多月。

 

分享到:
评论

相关推荐

    Linux下tomcat日志catalina.out按天(/周)分割

    为了解决这个问题,我们需要对`catalina.out`日志进行按天或按周分割,以便于管理和分析。 首先,我们可以编写一个shell脚本来实现这个功能。这个脚本通常会包含以下几个步骤: 1. **设置变量**:定义日志文件路径...

    windows下tomcat的catalina.out按天自动分割

    ### Windows下Tomcat的日志按天自动分割方法详解 #### 一、背景介绍 在部署Java Web应用时,经常使用Apache Tomcat作为Web服务器。随着应用程序的运行,Tomcat会生成大量的日志文件,其中最重要的是`catalina.out`...

    catalina.out 日志分割

    ### 关于"catalina.out"日志文件及分割方法 #### 一、问题背景与重要性 在IT运维工作中,日志文件对于诊断系统错误、监控应用运行状态以及进行性能优化等方面发挥着至关重要的作用。然而,随着系统运行时间的增长...

    Catalina.out日志分割工具

    通过定期分割`Catalina.out`,我们可以快速定位到特定时间段的问题,同时也方便对日志进行长期存储和备份。了解和正确使用`Catalina.out`日志分割工具,是每个Tomcat管理员必备的技能之一。在实际操作中,还需要结合...

    tomcat7修改catalina.out日志按天生成jar文件

    标题中的“tomcat7修改catalina.out日志按天生成jar文件”指的是在Tomcat 7这个流行的Java应用服务器中,对`catalina.out`日志文件进行配置,以便按照日期自动分割生成新的日志文件。这有助于管理日志,避免单个日志...

    Tomcat下使用Log4j 接管 catalina.out 日志文件生成方式

    在Java Web开发中,Tomcat是一个广泛使用的应用服务器,它默认使用`catalina.out`文件来记录所有标准输出和错误输出。然而,对于大型应用或长时间运行的服务器,`catalina.out`可能会变得非常大,不利于日志管理和...

    详解关于tomcat切割catalina.out日志的三种方式

    这些配置定义了多个日志输出目标(appender),每个appender都配置为按天切割,每天形成一个新的日志文件。 方法二:使用CRON脚本进行日志切割 CRON是Linux系统中用于定时执行任务的工具。可以通过编写CRON任务,...

    Linux中tomcat日志切割

    mv /var/log/tomcat/catalina.out /var/log/tomcat/catalina.$DATE.out.gz # 创建新的日志文件 touch /var/log/tomcat/catalina.out # 发送HUP信号给Tomcat pkill -HUP -u tomcat catalina ``` 将此脚本保存为`/...

    cronolog-1.6.2_0.zip

    exec /usr/local/bin/cronolog /path/to/tomcat/logs/access_log.%Y-%m-%d.out catalina.out ``` 在这个例子中,`/path/to/tomcat/logs/access_log.%Y-%m-%d.out` 是日志文件的路径,其中 `%Y-%m-%d` 是时间格式,...

    Linux下定时切割Tomcat日志并删除指定天数前的日志记录

    这条命令会在每天0点执行,查找`/usr/local/tomcat/logs`目录下所有7天前的`catalina.*.out`文件并删除它们。 总之,通过调整`logging.properties`日志级别、使用`cronolog`进行日志切割以及设置`crontab`任务删除...

    tomcat8日志分隔使用步骤及安装工具包--cronolog-1.6.2.tar.gz

    在Tomcat中,通常使用`Catalina.out`或`localhost.log`等文件记录服务器的运行情况。随着服务的运行,这些文件可能会变得非常大,影响读取和备份。日志分隔能解决这个问题,让每个时间段的日志独立,便于查询和分析...

    Centos7配置logrotate执行Tomcat日志轮转

    例如,`daily`表示每天轮转一次,`rotate 30`表示保留30天的备份,`compress`表示轮转后压缩文件,`notifempty`表示只有非空日志文件才会被轮转,等等。其他可用参数可以根据实际需求进行调整。 3. `copytruncate`...

    cronolog.exe

    3. **日志格式**:理解不同类型的Tomcat日志,如 Catalina.out、host-manager、manager、access logs等,以及它们的默认格式和如何自定义。 4. **日志滚动策略**:熟悉如何设定日志文件的保留天数或者最大数量,...

Global site tag (gtag.js) - Google Analytics