在tomcat的软件环境中,如果我们任由日志文件无限增长,总有一天会将磁盘占满的(废话)。特别是在日志文件增长速度很快的一些情况下,按日志切割日志文件并删除,就是一件很有必要的工作了,以下介绍了切割日志文件的方法。

第1章 系统环境

1.1 操作系统环境

[root@server1 ~]# cat /etc/redhat-release

CentOS Linux release 7.6.1810 (Core)

[root@server1 ~]# uname -r

3.10.0-957.1.3.el7.x86_64
[root@server1 ~]# uname -m

x86_64

1.2 jdk环境

[root@server1 ~]# java -version

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

1.3 tomcat环境

[root@server1 ~]# /home/deploy/tomcat8_manage1/bin/catalina.sh version
Using CATALINA_BASE:   /home/deploy/tomcat8_manage1
Using CATALINA_HOME:   /home/deploy/tomcat8_manage1
Using CATALINA_TMPDIR: /home/deploy/tomcat8_manage1/temp
Using JRE_HOME:        /home/deploy/java8
Using CLASSPATH:       /home/deploy/tomcat8_manage1/bin/bootstrap.jar:/home/deploy/tomcat8_manage1/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.81
Server built:   Aug 11 2017 10:21:27 UTC
Server number:  7.0.81.0
OS Name:        Linux
OS Version:     3.10.0-957.1.3.el7.x86_64
Architecture:   amd64
JVM Version:    1.8.0_181-b13
JVM Vendor:     Oracle Corporation

第2章 切割工具cronolog

2.1 cronolog的介绍

Cronolog是一个过滤器程序,它从标准输入读取日志文件条目,并将每个条目写入由文件名模板和当前日志所指定的输出文件中。 当扩展文件名改变时,关闭当前文件,并打开一个新文件。 Cronolog是为了与Apache等Web服务器一起使用,将访问日志分为每日或每月日志。

2.2 cronolog的安装

2.2.1 下载cronolog

[root@localhost local]#  cd /usr/local/

[root@localhost local]#  wget  https://files.cnblogs.com/files/crazyzero/cronolog-1.6.2.tar.gz

[root@localhost local]# md5sum cronolog-1.6.2.tar.gz

a44564fd5a5b061a5691b9a837d04979  cronolog-1.6.2.tar.gz         #<==cronolog的MD5码

2.2.2 编译安装

[root@localhost local]# tar xf cronolog-1.6.2.tar.gz

[root@localhost local]# cd cronolog-1.6.2

[root@localhost cronolog-1.6.2]# ./configure          #<==编译,此前先确保安装cmake等编译工具

[root@localhost cronolog-1.6.2]# make && make install #<==安装

[root@localhostcronolog-1.6.2]# which cronolog       #<==检查是否安装成功,如果有结果则安装成功

/usr/local/sbin/cronolog

2.3 cronolog命令

[root@localhost local]# which cronolog

/usr/local/sbin/cronolog            #<==cronolog命令的存放路径

使用man帮助命令查看cronolog使用语法:[root@server1 ~]# man cronolog

NAME

cronolog - write log messages to log files named according to a template

SYNOPSIS

cronolog [OPTION]... template

第3章 配置tomcat日志切割

配置日志切割,只需修改配置文件catalina.sh(如果windows则是catalina.bat,这里不介绍windows情况)即可。大概在catalina文件中的第380行和第390行左右,修改如下:

(1)内容:

org.apache.catalina.startup.Bootstrap "$@" start \

>> "$CATALINA_OUT" 2>&1 "&"

替换为:

org.apache.catalina.startup.Bootstrap "$@" start \

2>&1 |/usr/local/sbin/cronolog "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out" &

(2)内容:

org.apache.catalina.startup.Bootstrap "$@" start \

>> "$CATALINA_OUT" 2>&1 "&"

替换为:

org.apache.catalina.startup.Bootstrap "$@" start \

2>&1 |/usr/local/sbin/cronolog "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out" &

配置完成后,重启tomcat即可!!!!

第4章 定时整理日志

编写日志整理脚本

[root@manage-host ~]# vim /etc/init.d/tomcat_log.sh

#!/bin/bashtimedate=`date +%Y-%m-%d`for j in coin manage1 manage2
dotomcat_log_dir=/home/deploy/tomcat8_$j/logstomcat_origon_dir=/home/deploy/tomcat8_$j/backup_logfor i in catalina_out catalina_log host_manage host_access localhost_log managerdocd $tomcat_origon_dirif [ ! -d "$i" ];thenmkdir $ifidoneif [ $? -eq 0 ];thenmv $tomcat_log_dir/catalina-$timedate\.out $tomcat_origon_dir/catalina_out/mv $tomcat_log_dir/catalina.$timedate\.log $tomcat_origon_dir/catalina_log/mv $tomcat_log_dir/host-manager.$timedate\.log $tomcat_origon_dir/host_manage/mv $tomcat_log_dir/localhost_access_log.$timedate\.txt $tomcat_origon_dir/host_access/mv $tomcat_log_dir/localhost.$timedate\.log $tomcat_origon_dir/localhost_log/mv $tomcat_log_dir/manager.$timedate\.log $tomcat_origon_dir/manager/fi
done

脚本优化(加上按时间清理日志)

#!/bin/bashtimedate=`date +%Y-%m-%d`for j in exapi check robot trade
dotomcat_log_dir=/home/deploy/tomcat8_$j/logstomcat_dir=/home/deploy/tomcat8_$jtomcat_origon_dir=/home/deploy/tomcat8_$j/backup_logfor i in catalina_out catalina_log host_manage host_access localhost_log managerdocd $tomcat_origon_dirif [ ! -d "$i" ];thenmkdir $ifi# 删除120天以前的备份了的日志find $tomcat_origon_dir/$i/* -mtime +120 -exec rm -rf {} \;done#删除tomcat服务下的log4j-front目录下的120天以前的日志find $tomcat_dir/log4j-front/* -mtime +120 -name "20*" -exec rm -rf {} \;if [ $? -eq 0 ];thenmv $tomcat_log_dir/catalina-$timedate\.out $tomcat_origon_dir/catalina_out/mv $tomcat_log_dir/catalina.$timedate\.log $tomcat_origon_dir/catalina_log/mv $tomcat_log_dir/host-manager.$timedate\.log $tomcat_origon_dir/host_manage/mv $tomcat_log_dir/localhost_access_log.$timedate\.txt $tomcat_origon_dir/host_access/mv $tomcat_log_dir/localhost.$timedate\.log $tomcat_origon_dir/localhost_log/mv $tomcat_log_dir/manager.$timedate\.log $tomcat_origon_dir/manager/fi
done

添加定时处理计划

[root@manage-host ~]# crontab -e
59 23 * * * sh /etc/init.d/tomcat_log.sh

第5章 定时删除过期日志

在这里直接使用linux自带的crontab定时任务工具,设置每天凌晨00:00执行删除任务,删除7天以前的日志文件。

crontab -e          #<==直接输入该命令,添加一个定时任务计划

00 00 * * * /bin/find /opt/gdyy/tomcat7/logs/ -type f -mtime +7 | xargs rm -f  &>/dev/null  #<==查找tomcat/logs下面的日志文件,并删除7天以前的日志,添加完成后保存退出!!

[root@server1 ~]# crontab -l    #<==查看定时任务计划#remove gw log 7 days ago by liutao at 2018-02-08

00 00 * * * /bin/find /opt/gw/tomcat7/logs/ -type f -mtime +7 | xargs -i mv {} /data/bak/gw_log/  &>/dev/null

tomcat日志切割并定时删除完成!!!

tomcat日志切割和定期删除相关推荐

  1. cat查看tomcat日志 linux_方法篇:tomcat日志切割和定期删除

    tomcat日志切割和定期删除 在tomcat的软件环境中,如果我们任由日志文件无限增长,总有一天会将磁盘占满的(废话).特别是在日志文件增长速度很快的一些情况下,按日志切割日志文件并删除,就是一件很 ...

  2. tomcat日志切割-logrotate

    Tomcat日志切割(logrotate) logrotate是个强大的系统软件,它对日志文件有着一套完整的操作模式,譬如:转储.邮件和压缩等,并且默认logrotate加到cron(/etc/cro ...

  3. 使用cronolog实现linux日志切割,Linux系统tomcat日志切割,tomcat日志切割,cronolog工具的使用

    1.说明 本文档已Tomcat8.5.47.0为例,使用cronolog实现linux系列系统下的tomcat的日志切割,主要切割catalina.out日志. 2.下载安装cronolog工具 下载 ...

  4. tomcat日志切割

    如果tomcat的catalina.out不做日志切割的话,会导致catalina.out文件越来越大,而且要查看某一天的文件时比较困难,所以对catalina.out做日志切割,使用cronolog ...

  5. mongodb集群linux日志分割,Linux下Mongodb数据库日志切割及定时删除

    操作系统:CentOS Mongodb安装目录:/usr/local/mongodb Mongodb数据库存放目录:/home/data/mongodb/mongodb_data Mongodb日志存 ...

  6. aix自动清理oracle日志,aix_设立定期删除oracle日志归档

    aix_设置定期删除oracle日志归档 系统环境 操作系统: AIX 5.3.0.0 数据库: 10.2.0 设置过程 设置定时器 1.       切换到超级用户(root),并创建oracle用 ...

  7. Tomcat日志切割cronolog

    Cronolog 分割 Tomcat8 Catalina.out日志. 默认情况下,tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出全部写入到一个cat ...

  8. shell 删除七日内日志_SHELL脚本定期删除日志文件(日志定期清理)

    假设我们的应用每天会产生一个日志文件,但我们并没有对日志文件做任何归档处理,久而久之日积月累,就会将磁盘空间占满,从而影响系统的正常运行. 分析磁盘空间占用情况 #当前磁盘空间占用情况 df -h # ...

  9. logrotate实现日志切割和清理(清晰易懂)

    一.logrotate介绍 logrotate是centos自带命令,其他linux操作系统可能需要自行安装,用来进行日志切割和定期删除,简单来说就是将某个日志文件按照时间或大小分割成多份,删除时间久 ...

  10. Linux日志切割工具Logrotate

    一.简介 Logrotate 程序是linux系统自带的一个日志文件管理工具.用于分割日志文件,压缩转存.删除旧的日志文件,并创建新的日志文件:而运维过程中,经常见我们对比如nginx,通过脚本的方式 ...

最新文章

  1. redis 管理工具_Redis的跨平台GUI 桌面管理工具
  2. Android中使用File文件进行数据存储
  3. Oracle 安装完怎么用,oracle 11g 安装完怎么用
  4. C# 图片文件文本string格式 传输问题
  5. php html标签自定义属性,浅谈JS读取DOM对象(标签)的自定义属性
  6. 魅族16s Pro细节曝光:骁龙855plus 未上Flyme 8
  7. Unity打开的文件是杂项文件的处理方法
  8. bat替换文件中的字符串_JavaScript 中替换字符串的几种方法
  9. 形容女人的词语大全(坏与好)
  10. 大快DKM大数据基础管理平台的监控功能剖析
  11. 案例:多任务udp聊天器
  12. android+抓取直播源,直播rtmp源地址抓取软件
  13. win 7计算机图标变了,Win7美化攻略:替换imageres.dll,图标全变样
  14. 最优化方法(学习笔记)-第二章凸集
  15. 旋转框目标检测————关于旋转框定义和解决方案
  16. JST日本压着端子GHD系列线对板连接器PCB封装库(1.25mm间距)
  17. 数字逻辑educoder实训项目 logisim实现 交通灯系统设计
  18. 企业如何做好数据防泄漏需求分析
  19. aardio - 【库】libxl库,一个dll操作excel
  20. C语言sem Take函数,信号量函数sem.c

热门文章

  1. Windows驱动一些概念WDK WDF WDM WDI
  2. java bss_数据段、代码段、堆栈段、BSS段的区别
  3. Ubuntu查找文件
  4. CAN总线简易入门教程
  5. 智慧医疗整体解决方案
  6. 使用知用电流探头时如何设置示波器参数
  7. 软件接收机射频信号源matlab程序,射频信号源
  8. kafka学习七:kafka之集群篇
  9. LOJ#2134 小园丁与老司机
  10. 【39】给定一个无重的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复