JDK + Tomcat 安装 + 制作自定义镜像【第 2.1 篇 Tomcat 日志满问题】
更好的方法,跨平台(不依赖平台,比如阿里云的后台)的方法是:spring boot 定时任务,直接在程序里写定时清除日志的任务;以后再说;
============================================
新方法是,利用云平台的功能,举例阿里云:

如:rm -f /usr/local/tomcat/apache-tomcat-9.0.31/logs/*
但是 ,若仅仅像上面那样删除日志,会导致tomcat异常,因为logs目录下 以后不再会有任何日志,可能tomcat发现核心日志文件不存在后(catalina.out 、host-manager.log 等等,具体哪些是核心,咱也不知道)出了异常;

解决方法是重启下:reboot;

综合起来就是:
rm -f /usr/local/tomcat/apache-tomcat-9.0.31/logs/* && reboot; && 的意思是只有上条命令执行成功的情况下,才执行 下一条命令;

=========================以下是旧方法====================================
问题描述,很多时候我们都会遇到 tomcat 日志满的问题,尤其是catalina.out 可能过段时间会达到几十个G的大小,这个时候千万不要用vi来打开他,会直接暴死。
然而很遗憾的是针对这个问题,tomcat从5 - tomcat9 都没有解决,即10年都没有解决,看来需要 程序员自己想法解决。若不解决,那么catalina.out会越来越大,最终导致磁盘满,
应用出现不稳定的情况,我之前遇到过3次,黄俊也遇到了 基本上这个问题 必须彻彻底底的解决掉。
解决方法1:
https://blog.csdn.net/shaonaozu/article/details/52325589?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-9
https://blog.csdn.net/u012365843/article/details/100039849?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-19.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-19.nonecase
如果Tomcat的catalina.out日志文件不关闭,该文件会记录所有的Tomcat日志信息,时间长了该文件会非常大的,这样会占用很大的磁盘空间的。所以我们一般都是每个项目独自记录想要看到的日志信息,而不是所有的日志信息。 关闭catalina.out打印日志: 1.在Tomcat的bin目录下找到catalina.sh 2.修改catalina.sh中的对应信息 if [ -z "$CATALINA_OUT" ] ; then
#CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
CATALINA_OUT=/dev/null
fi 3.保存catalina.sh文件并重启Tomcat就OK了!
这种方法虽然可以,但是 程序并不会 向catalina.out里输出日志了,导致开发调试的时候 看不到 任何日志 非常不便于调试,废弃这种方法。
解决方案2:既然日志会满,那么能否通过写脚本来定时清除呢,比如每天晚上 12点 清除一次 catalina.out,不需要重启tomcat,因为仅仅是清空了日志,并没有删除文件,tomcat是可以继续写入日志的。
1. 需要安装centos定时器软件,
yum install crontabs

2.检查 这个定时器软件是否开机自动启动了。
可参考:https://www.cnblogs.com/ftl1012/p/crontab.html
systemctl list-unit-files |grep crond 检查是否存在这个服务 systemctl status crond.service 检查 这个服务当前的状态


3. 编写定时清空 catalina.out 的linux脚本。
#!/bin/sh
echo -n "" > /usr/local/tomcat/apache-tomcat-9.0.31/logs/catalina.out
exit


4.编写定时器,加入定时任务。
crontab -e //编辑当前用户的crontab文件 默认保存在了/var/spool/cron/里 如下【切记这步一定要用vi直接编辑,不可下载到本地编辑再上传的方式】:
0 9 * * * /usr/local/tomcat/apache-tomcat-9.0.31/bin/clear_catalina_out.sh > /dev/null 2>&1 --- 每天上午9点执行,算了,这个还是保存3天的日志吧,方便紧急情况下 查看解决问题。用下面的,每间隔3天的凌晨执行一次。
0 0 */3 * * /usr/local/tomcat/apache-tomcat-9.0.31/bin/clear_catalina_out.sh > /dev/null 2>&1

按 i 键 粘贴内容后,按esc键 退出编辑 然后输入 :wq 保存就可。



其它说明:0 9 * * * 的解释问题 可以百度,举例:https://tool.lu/crontab/ 这个网站 或 https://blog.csdn.net/xinyflove/article/details/83178876 这个说明



5. 虽然定时删除了 catalina.out,但是还是有其他很多日志,占据空间,这个时候,还需要设置一下 tomcat的其它日志保留日期:



修改好后,上传就可。
6.至此就结束了,reboot重启服务器。就可以制作镜像了。
===========================================================================================================
测试,是否会正确执行,让他每分钟执行一次:
*/1 * * * * /usr/local/tomcat/apache-tomcat-9.0.31/bin/clear_catalina_out.sh > /dev/null 2>&1
切记这步一定要用vi,不可先下载到本地再编辑的方式;
crontab -e 来进行编辑

然后重启,开始测试,看下 catalina.out 是否会 每分钟 被清空一次。看到通过下面【gif】看到,是正确执行了!!!!!

定时器也是有运行日志的,他的运行日志在这里,我们可以看下:

=============================================================================================================
其它辅助,与本篇无关,当不知所措的时候 可以观察:

JDK + Tomcat 安装 + 制作自定义镜像【第 2.1 篇 Tomcat 日志满问题】的更多相关文章
- JDK + Tomcat 安装 + 制作自定义镜像【第 2 篇 Tomcat】
[第 1 篇 JDK]:https://www.cnblogs.com/del88/p/11842387.html[第 2 篇 Tomcat]:https://www.cnblogs.com/del8 ...
- JDK + Tomcat 安装 + 制作自定义镜像【第 1 篇 JDK】
[第 1 篇 JDK]:https://www.cnblogs.com/del88/p/11842387.html[第 2 篇 Tomcat]:https://www.cnblogs.com/del8 ...
- JDK + Tomcat 安装 + 制作自定义镜像【第 3 篇 系统镜像】
[第 1 篇 JDK]:https://www.cnblogs.com/del88/p/11842387.html[第 2 篇 Tomcat]:https://www.cnblogs.com/del8 ...
- Dockerfile制作自定义镜像
本文介绍最精简的Dockerfile文件构建镜像,Docker启动的时候可以启动一个shell脚本 1.首先编写Dockerfile文件 说明 1.启动的这个shell脚本一定是不退出的,比如服务器的 ...
- JDK和Tomcat安装
JDK安装: 1,选择安装位置,其余默认安装,安装两次,一个是JDK,一个是JRE,安装在两个文件夹中. 2,配置环境变量: 1,新建一个变量,变量名:JAVA_HOME,变量值:C:\Program ...
- 05006_Linux的jdk、mysql、tomcat安装
1.软件包下载链接:软件包下载 密码:advk 2.安装JDK (1)查看当前Linux系统是否已经安装java,输入 rpm -qa | grep java : (2)卸载两个openJDK (3) ...
- 五十四.自定义镜像及仓库、持久化存储 、 Docker网络架构
1. 制作自定义镜像(base基础镜像,搭建共性环境) 基于centos镜像使用commit创建新的镜像文件 基于centos镜像使用Dockerfile文件创建一个新的镜像文件 1.1 使用镜像 ...
- Docker 11 自定义镜像
参考源 https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0 https://www.bilibili.com/vid ...
- Tomcat学习笔记【2】--- Tomcat安装、环境变量配置、启动和关闭
本文主要讲Tomcat的安装和配置. 一 Tomcat安装 1.1 下载 下载地址:http://tomcat.apache.org/ 1.2 安装 Tomcat是不需要安装的,解压压缩包即可. 在安 ...
- DokcerFile的添加及如何生成一个自定义镜像mycentos(四)
最近在学习Docker,用commit去生成一个镜像,但是生成后的镜像非常臃肿,所以去学习了一下DockerFile. 前提条件: 已在虚拟机中成功安装Docker 简单的理解可以如下图所示: Doc ...
随机推荐
- 深度学习基础课:使用交叉熵损失函数和Softmax激活函数(下)
大家好~本课程为"深度学习基础班"的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序 线上课程资料: 本节课录像回放 加QQ群,获得 ...
- echarts网络拓扑图动态流程图
https://aixiaodou.blog.csdn.net/article/details/93712083?utm_medium=distribute.pc_relevant.none-task ...
- CMake学习,我们怎么从零开始狂写大型项目
CMake 说明 cmake的定义是什么 ?-----高级编译配置工具 当多个人用不同的语言或者编译器开发一个项目,最终要输出一个可执行文件或者共享库(dll,so等等)这时候神器就出现了-----C ...
- 小白学标准库之 log
日常开发中,日志 log 几乎是必不可少.本文旨在介绍 log 的使用和内部实现等. 1. log 使用及实现 package main import ( "fmt" " ...
- 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.11.22)
一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...
- 【wayn商城】本地开发指南
这篇文章给大家带来我自己写的开源项目[wayn商城]的本地开发指南,帮助各位朋友在本地快速运行[wayn商城],避免踩坑,减少不必要的精力在软件下载安装上. waynboot-mall 是一套全部开源 ...
- [转帖]Oracle Exadata X10M 数据库一体机发布,树立 OLTP 数据库性能新标杆
https://www.modb.pro/db/653936 2023年6月25日消息,Oracle 公司继续以其专用的 Exadata 平台重新定义 OLTP 数据库性能.上周,该公司延续了这一传统 ...
- [转帖]datax安装+配置+使用文档
1 DataX离线同步工具DataX3.0介绍 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.Postgre.HDFS.Hiv ...
- [转帖]sqluldr2 oracle直接导出数据为文本的小工具使用
https://www.cnblogs.com/ocp-100/p/11098373.html 近期客户有需求,导出某些审计数据,供审计人进行核查,只能导出成文本或excel格式的进行查看,这里我们使 ...
- 【转帖】BGP:全穿透,半穿透,静态代播有什么区别
一. 什么是BGP二. 具体实现方案2.1BGP的优点2.2 真伪BGP在使用效果上有什么差异2.2.1 真BGP实现了用户最佳路径的自动选择 ...