Tomcat日志自动分割的三种方法
目录
- 1、方法一:使用 cronolog
- 2、方法二:使用 rotatelogs
- 3、方法三:使用脚本
1、方法一:使用 cronolog 官网:http://cronolog.org
RPM包下载方法:在rpmfind.net上搜索cronolog选择对应RPM包复制下载链接即可
下戟安装cronolog:
[root@localhost ~]# yum install https://rpmfind.net/linux/epel/7/x86_64/Packages/c/cronolog-1.6.2-14.el7.x86_64.rpm -y
查看 cronolog 安装后所在目录(验证安装是否成功):
[root@localhost logs]# whereis cronologcronolog: /usr/sbin/cronolog /usr/share/man/man1/cronolog.1m.gz
编辑 bin/catalina.sh 文件(tomcat的启动文件):
1.找到下面行并把它用#注释掉touch "$CATALINA_BASE"/logs/catalina.out在新 Tomcat7 的 bin/catalina.sh 文件要注释的行是touch "SCATALINA_OUT"2.替换下面的行(有两处,不过一般在-security 中的那一行不需要去关注,不妨两处全替换了):org.apache.catalina.startup.Bootstrop "$@" start \>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &修改为org.apache.catalina.startup.Bootstrap "$@" start \2>&1 | /usr/local/sbin/cronolog "$CATALINA_BASE" /logs/catalina-%Y-%m-%d.out>>/dex/null &在新 Tomcat7 的 bin/catalina.sh 中需要替换的行是>> "$CATALINA_OUT" 2>&1 "&"替换后该行的内容与上面是一样的注:为什么 Tomcat7 后会有所不同,因为在它的 catalina.sh 文件中有如下定义CATALINA_OUT="$CATALINA_BASE" /logs/catalina.out3.保存 catalina.sh 文件并重启 Tomcat 即可[root@localhost ~]# systemctl restart tomcat.service
查看日志分割结果:
[root@localhost ~]# ll -d /usr/local/tomcat/logs/catalina-2022-06-10.out-rw-r--r-- 1 tomcat tomcat 106331 Jun 10 16:51 /usr/local/tomcat/logs/catalina-2022-06-10.out#可以看到已经存在
2、方法二:使用 rotatelogs `rotatelogg` 是 `apache` 自带的工具
查看rotatelogs属于哪个包(确认是否包含在apache里面):
#通过观察,确认rotatelegs包含在apache包内,因此仅需要安装httpd即可顺带安装rotatelegs[root@localhost logs]# yum whatprovides */rotatelogsLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfile * base: mirrors.dgut.edu.cn * extras: mirrors.dgut.edu.cn * updates: mirrors.dgut.edu.cnhttpd-2.4.6-95.el7.centos.x86_64 : Apache HTTP ServerRepo: baseMatched from:Filename: /usr/sbin/rotatelogshttpd-2.4.6-97.el7.centos.x86_64 : Apache HTTP ServerRepo: updatesMatched from:Filename: /usr/sbin/rotatelogshttpd-2.4.6-97.el7.centos.1.x86_64 : Apache HTTP ServerRepo: updatesMatched from:Filename: /usr/sbin/rotatelogshttpd-2.4.6-97.el7.centos.2.x86_64 : Apache HTTP ServerRepo: updatesMatched from:Filename: /usr/sbin/rotatelogshttpd-2.4.6-97.el7.centos.4.x86_64 : Apache HTTP ServerRepo: updatesMatched from:Filename: /usr/sbin/rotatelogshttpd-2.4.6-97.el7.centos.5.x86_64 : Apache HTTP ServerRepo: updatesMatched from:Filename: /usr/sbin/rotatelogs
安装httpd:
[root@localhost ~]# yum install httpd -y
查看 rotatelogs 安装后所在目录(验证安装是否成功):
[root@localhost ~]# whereis rotatelogsrotatelogs: /usr/sbin/rotatelogs /usr/share/man/man8/rotatelogs.8.gz
编辑 bin/catalina.sh 文件(tomcat的启动文件):
1.找到下面行并把它用#注释掉touch "$CATALINA_BASE"/logs/catalina.out在新 Tomcat7 的 bin/catalina.sh 文件要注释的行是touch "SCATALINA_OUT"2.替换下面的行(有两处,不过一般在-security 中的那一行不需要去关注,不妨两处全替换了):org.apache.catalina.startup.Bootstrop "$@" start \>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &修改为org.apache.catalina.startup.Bootstrap "$@" start \2>&1 | /usr/sbin/rotatelogs "$CATALINA_BASE"/logs/catalina-%Y%m%d.out 86400 480 为了与上方区分,这里日志的名字格式中,日期的年、月、日没有使用“-”隔开在新 Tomcat7 的 bin/catalina.sh 中需要替换的行是>> "$CATALINA_OUT" 2>&1 "&"替换后该行的内容与上面是一样的注:为什么 Tomcat7 后会有所不同,因为在它的 catalina.sh 文件中有如下定义CATALINA_OUT="$CATALINA_BASE" /logs/catalina.out3.保存 catalina.sh 文件并重启 Tomcat 即可[root@localhost ~]# systemctl restart tomcat.service
查看日志分割结果:
[root@localhost ~]# ll -d /usr/local/tomcat/logs/catalina-20220610.out-rw-r--r-- 1 tomcat tomcat 105380 Jun 10 17:22 /usr/local/tomcat/logs/catalina-20220610.out#可以看到已经存在(日志格式为了区分,其中日期的年、月、日没有使用“-”隔开,上方有提及)
3、方法三:使用脚本 Linux环境下切割日志脚本
将此脚本放到 tomcat 下的 bin 目录,在 crontab中自动执行,shell脚本如下:#!/bin/bashcd `dirname $0`d=`date +%Y-%m-%d`d7=`date -d'7 day ago' +%Y-%m-%d'cd ../logs/cp catalina.out catalina.out.${d}echo "" > catalina.outrm -rf catalina.out.${d7}
这里就不进行演示了,如果需要自行测试
【Tomcat日志自动分割的三种方法】到此这篇关于Tomcat日志自动分割的三种方法的文章就介绍到这了,更多相关Tomcat日志自动分割内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 苏磊反思日志0623-2017
- [spring]spring的bean自动装配机制
- 投稿|高阶自动驾驶标配,线控底盘走到“上行时刻”
- 测试|自动化测试selenium基础篇——webdriverAPI
- 基于Thinkphp|基于Thinkphp 6 + Vue2的自动生成代码的后台管理系统
- 【附下载】一款强大的Web自动化漏洞扫描工具——Xray
- 消息管理平台|GrayLog分布式日志组件来提高查日志效率!
- RPA超自动化 | 农耕记携手云扩加速财务智能化运营
- RTC 性能自动化工具在内存优化场景下的实践
- python|零配置python日志,安装即用