
当我今天在tomcat上检查项目日志时,我发现catalina.out文件已达到202M,因此我决定拆分日志. 首先,我查看了crontab任务,发现有一个自动任务可以删除前10天的日志. 但没有发现自动切割任务.
让狗搜索一会儿,据说tomcat具有默认的日志拆分功能,该功能可以每天自动生成类似于catalina.2010-10-08.log的文件,但默认为catalina.out文件一直在增长. 据说当达到一定大小时,它将占用磁盘空间(无用),影响性能,并会报告错误. 暂时尚未找到. 其他人已经检查了日志文件.
解决方案是使用cronolog进行原木切割. 据说cronolog是一种用于切割原木的小工具. 它可以剪切很多日志文件,并在有时间时尝试. 具体方法如下:
1. 下载(最新版本)
#wget
2. 解压缩
#tar zxvf cronolog-1.6.2.tar.gz
3,输入cronolog安装文件所在的目录
#cd cronolog-1.6.2
4. 运行安装
#./configure

#make
#进行安装
5,检查cronolog的安装目录(验证安装是否成功)
#哪个cronolog
通常显示为: / usr / local / sbin / cronolog
6. 进入Tomcat bin目录,打开catalina.sh文件,并找到有关tomcat启动的行,或者您可以直接搜索catalina.out,通常我们在以下行中修改内容(因为我们通常不在-security中运行),
其他
“ $ _ RUNJAVA” $ JAVA_OPTS $ CATALINA_OPTS \
-Djava.endorsed.dirs =``$ JAVA_ENDORSED_DIRS” -classpath“ $ CLASSPATH” \
-Dcatalina.base =” $ CATALINA_BASE” \
-Dcatalina.home =” $ CATALINA_HOME” \

-Djava.io.tmpdir =“ $ CATALINA_TMPDIR” \
org.apache.catalina.startup.Bootstrap“ $ @”开始\
>>“ $ CATALINA_BASE” /logs/catalina.out 2>&1&
如果[! -z“ $ CATALINA_PID”];然后
回显$!> $ CATALINA_PID
fi
fi
修改
org.apache.catalina.startup.Bootstrap“ $ @”开始\
>>“ $ CATALINA_BASE” /logs/catalina.out 2>&1&
是

org.apache.catalina.startup.Bootstrap“ $ @”开始2>&1 \
| / usr / local / sbin / cronolog“ $ CATALINA_BASE” /logs/catalina.%Y-%m-%d.out >> / dev / null&
同时,上方有一条线
触摸“ $ CATALINA_BASE” /logs/catalina.out
您可以将其注释掉tomcat logs下的日志分类,完成后可以重新启动Tomcat. 您可以在每天生成的logs目录中查看catalina.2009-02-18.out的日志.
以上所有内容均指互联网上的帖子,有一个我不了解的地方,明天需要验证一个地方.
不清楚:
“ org.apache.catalina.startup.Bootstrap” $ @“开始2>&1 \
| / usr / local / sbin / cronolog“ $ CATALINA_BASE” /logs/catalina.%Y-%m-%d.out >> / dev / null和“为什么添加” >> / dev / null“而不是直接”> > / usr / local / sbin / cronolog“ $ CATALINA_BASE” /logs/catalina.%Y-%m-%d.out“将输出重定向到catalina. %Y-%m-%d.out文件. 我必须抽空寻找时间,也想认识那些留言给我的朋友.
需要验证:
注释一下tomcat logs下的日志分类,在触摸“ $ CATALINA_BASE” /logs/catalina.out之后,不会生成catalina.out,因此当前输出到文件catalina. %Y-%m-%d.out吗?我执行剪切并直接转到新的日志文件吗?我看不到切割的计时任务,所以这个计时任务是由tomcat自己维护的吗? Cronolog仅提供切割方法?需要Cronolog,只需在触摸线处注释即可……找到尝试的机会)

顺便说一句,我还看到了另一个由纯shell实现的解决方案.
编写一个.sh文件,并将其放在tomcat下的bin目录中. 它将在cron中自动执行. Shell脚本如下:
#! / bin / bash
cd`dirname $ 0'
d =`日期+%Y%m%d`
d7 =`date -d'7天前'+%Y%m%d`
cd ../日志/
cp catalina.out catalina.out. $ {d}
echo“”> catalina.out
rm -rf catalina.out. $ {d7}
还有一个问题cd`dirname $ 0`不明白是什么意思
原来是
$ 0获取当前shell程序的文件名
dirname $ 0,获取当前shell程序的路径
cd`dirname $ 0',输入当前shell程序的目录
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-161372-1.html
其实是因为中国在南海建了岛礁