因公司项目用的是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个多月。
相关推荐
为了解决这个问题,我们需要对`catalina.out`日志进行按天或按周分割,以便于管理和分析。 首先,我们可以编写一个shell脚本来实现这个功能。这个脚本通常会包含以下几个步骤: 1. **设置变量**:定义日志文件路径...
### Windows下Tomcat的日志按天自动分割方法详解 #### 一、背景介绍 在部署Java Web应用时,经常使用Apache Tomcat作为Web服务器。随着应用程序的运行,Tomcat会生成大量的日志文件,其中最重要的是`catalina.out`...
### 关于"catalina.out"日志文件及分割方法 #### 一、问题背景与重要性 在IT运维工作中,日志文件对于诊断系统错误、监控应用运行状态以及进行性能优化等方面发挥着至关重要的作用。然而,随着系统运行时间的增长...
通过定期分割`Catalina.out`,我们可以快速定位到特定时间段的问题,同时也方便对日志进行长期存储和备份。了解和正确使用`Catalina.out`日志分割工具,是每个Tomcat管理员必备的技能之一。在实际操作中,还需要结合...
标题中的“tomcat7修改catalina.out日志按天生成jar文件”指的是在Tomcat 7这个流行的Java应用服务器中,对`catalina.out`日志文件进行配置,以便按照日期自动分割生成新的日志文件。这有助于管理日志,避免单个日志...
在Java Web开发中,Tomcat是一个广泛使用的应用服务器,它默认使用`catalina.out`文件来记录所有标准输出和错误输出。然而,对于大型应用或长时间运行的服务器,`catalina.out`可能会变得非常大,不利于日志管理和...
这些配置定义了多个日志输出目标(appender),每个appender都配置为按天切割,每天形成一个新的日志文件。 方法二:使用CRON脚本进行日志切割 CRON是Linux系统中用于定时执行任务的工具。可以通过编写CRON任务,...
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 ``` 将此脚本保存为`/...
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` 是时间格式,...
这条命令会在每天0点执行,查找`/usr/local/tomcat/logs`目录下所有7天前的`catalina.*.out`文件并删除它们。 总之,通过调整`logging.properties`日志级别、使用`cronolog`进行日志切割以及设置`crontab`任务删除...
在Tomcat中,通常使用`Catalina.out`或`localhost.log`等文件记录服务器的运行情况。随着服务的运行,这些文件可能会变得非常大,影响读取和备份。日志分隔能解决这个问题,让每个时间段的日志独立,便于查询和分析...
例如,`daily`表示每天轮转一次,`rotate 30`表示保留30天的备份,`compress`表示轮转后压缩文件,`notifempty`表示只有非空日志文件才会被轮转,等等。其他可用参数可以根据实际需求进行调整。 3. `copytruncate`...
3. **日志格式**:理解不同类型的Tomcat日志,如 Catalina.out、host-manager、manager、access logs等,以及它们的默认格式和如何自定义。 4. **日志滚动策略**:熟悉如何设定日志文件的保留天数或者最大数量,...