Tomcat的catalina.out日志分割有多种方式,如logrotate、cronolog等,本文采用最简单的shell方式。 /bin/sh #该脚本用于catalina.out日志割接 y=`date "+%Y"` m=`date "+%m"` d=`date "+%d" -d "-1day"` #for tomcat log_file1 $y$m$d echo > catalina.out cd $log_file2 cp catalina.out catalina.out. $y$m$d echo > catalina.out exit [root@nginx01 ~]# crontab -l 0 0 * * * /root/script/catalina_out.sh 1>/dev/null 2>&1 由于catalina.out日志会不断增长,故部署此脚本每天零点对日志文件进行割接,每天生成一个日志文件,便于查看。
启动 Tomcat 时, catalina.out 中输出的日志格式可能不太理想。 :16.134 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 12631 ms Google搜索 “catalina.out
Tomcat服务启动后会在logs目录里生成catalina.out文件而且一直累积,到后来越来越大,上网搜索了下切割该日志的解决办法,步骤如下: 1.下载工具cronolog, 地址:http://cronolog.org tomcat服务,进入tomcat的bin/目录,备份catalina.sh文件 4.编辑catalina.sh文件,在该文件大概295行,注释掉 touch "$CATALINA_BASE"/logs/catalina.out 在文件大概307行和319行,将 >> "$CATALINA_BASE"/logs/catalina.out 2>&1 & 替换为 2>&1 | /usr/local/sbin/cronolog "CATALINA_BASE
1.重定向清空文件 [root@hb logs]# du -h catalina.out 查看文件大小 [root@hb logs]# > catalina.out 重定向清空文件 [root@hb logs]# du -h catalina.out 查看文件大小 2.重定向true命令清空文件 [root@hb logs]# du -h catalina.out [root@hb logs]# ]# du -h catalina.out [root@hb logs]# cat /dev/null > catalina.out [root@hb logs]# du -h catalina.out -h catalina.out [root@hb logs]# du -h catalina.out [root@hb logs]# dd if=/dev/null of=catalina.out @hb logs]# du -h catalina.out [root@hb logs]# truncate -s 0 catalina.out [root@hb logs]# du -h catalina.out
mkdir -p /var/log/tomcat/oldlog [root@test01 ~]# cat /etc/logrotate.d/tomcat /usr/local/tomcat8/logs/catalina.out Allocating hash table for state file, size 15360 B Handling 1 logs rotating pattern: /usr/local/tomcat8/logs/catalina.out oldlog, empty log files are not rotated, old logs are removed considering log /usr/local/tomcat8/logs/catalina.out log needs rotating rotating log /usr/local/tomcat8/logs/catalina.out, log->rotateCount is 5000 Converted logs failed fscreate context set to unconfined_u:object_r:usr_t:s0 renaming /usr/local/tomcat8/logs/catalina.out
Tomcat默认生成的日志文件catalina.out,随着时间的推移,逐渐增大,可能达到G数量级。文件过大,我们将无法使用过常规编辑工具查看,严重影响系统维护工作。 一、 代码本身考虑 Tomcat输出catalina.out文件,数据主要来源为:System.out 和 System.err 在控制台上直接输出的信息。 catalina.sh a、 修改输出日志路径 修改: if [ -z "$CATALINA_OUT" ] ; then CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out ------ 免费下载地址在 http://linux.linuxidc.com/ 用户名与密码都是www.linuxidc.com 具体下载目录在 /2014年资料/10月/25日/Tomcat输出catalina.out
tomcat_home}/bin下的同名文件 5、删除{tomcat_home}/conf/logging.properties 文件 6、 删除{tomcat_home}\logs\的历史日志(主要是catalina.out 这个文件) 7、kill掉tomcat进程,重新启动 顺利的话,logs/目录下的catalina.out文件应该不会再生成了,但是实际发现,有时这样仍然不起作用,需要再下狠招。 tomcat_home}/bin/catalina.sh ,找到下面的位置 if [ -z "$CATALINA_OUT" ] ; then #CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
前言 随着每天业务的增长,Tomcat 的catalina.out日志 变得越来越大,占用磁盘空间不说。要查看某个时候的日志的时候,庞大的日志让你顿时无从下手,所以日志的切割的变得刻不容缓。 Tomcat 日志分割 我们采用日期形式切割catalina.out 日志,因此采用cronlog 软件切割。 httpd 2、修改bin/catalina.sh文件 第一步: if [ -z "$CATALINA_OUT" ] ; then CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out tips:不能再用原来的catalina.out 来输出日志了哦,因为刚刚不是被我们注释掉了。 ? # 定时清理日志 想要写一个Shell脚本,定期清理掉久远的日志文件 ,避免磁盘不断被占用。
-19 00 00 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/log-file &>/dev/null 三、使用logrotate处理tomcat catalina.out 日志过大问题 问题描述:一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。 tomcat.pid 21924 2、配置切割设置 (1)配置切割 [root@linuxidc ~]# vim /etc/logrotate.d/tomcat_catalina /data/tomcat/logs/catalina.out
变更tomcat的catalina.sh文件中配置信息,以tomcat-7.0.69o 为例 1、189行的CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out CATALINA_OUT" >> /dev/null & 同理401行的org.apache.catalina.startup.Bootstrap "$@" start \ 可将来巨大的catalina.out 文件直接删除,也可采用cp /dev/null catalina.out文件,将空间覆盖此文件。
1.应用场景 今天要查看tomcat的catalina.out的目录下的2018/01/17 17:30:13的日志,但是文件很大,G级别的,如果下载到本地,打开搜索很麻烦,如果使用tail -f 命令去查看 2.解决办法 CAT catalina.out|grep '2018/01/17 17:30:13' 这样和2018/01/17 17:30:13的信息都可以看到了
在磁盘使用率达到80%时,自动清理掉一些没有用的日志文件,根据这个想法,在生产环境上写了一个以下脚本,按照该流程,可实现在linux环境做一个定时任务来执行shell脚本,监控磁盘内存,当到达80%时,将自动清空catalina.out ) 3 val=80 4 if [ "$maxUsed" -gt "$val" ];then 5 cat /dev/null 6 >/app/web/tomcat-8089/logs/catalina.out 7 echo "clear success catalina.out end" 8 fi 2.给脚本加上可执行权限:chmod 777 clearlog.sh 3.执行crontab –e
jenkins发布服务失败查看catalina.out启动日志和xxl-job jobhandler naming conflicts 1.查看tomcat/logs/catalina.out 日志,发现和定位问题
linux系统中,查看指定文件的指定内容,linux查找文件内容,linux文件关键字搜索: 查找所有 1.grep ‘异常’ catalina.out 2.cat catalina.out | grep ‘线程池计算当月理财余额异常’ 指定条件 1.匹配行上下10行 grep -10 ‘线程池计算当月理财余额异常’ catalina.out 2.匹配行前10行 grep -B 10 ‘线程池计算当月理财余额异常’ catalina.out 3.匹配行后10行 grep -A 10 ‘线程池计算当月理财余额异常’ catalina.out 4.包含2个关键字 grep ‘线程池’ catalina.out | grep ‘exception’
查询日志尾部最后100行的日志; tail -n +100 catalina.out 查询100行之后的所有日志; tail -fn 100 catalina.out 循环实时查看最后100行记录( 最常用的) 配合着grep用, 例如 : tail -fn 100 catalina.out | grep — ‘关键字’ 如果一次性查询的数据量太大,可以进行翻页查看, 例如:tail -n 6000 catalina.out |more -100 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键) ————————————————————————————————————————– 2、head head -n 1000 catalina.out //查询日志文件中的头10行日志; head -n -1000 catalina.out //查询日志文件除了最后10行的其他所有日志 //按照时间段 sed -n '/2019-01-17 10:07:10/,/2019-02-14 16:54:01/p'catalina.out ------------------------
在Linux系统中,Tomcat 启动后默认将很多信息都写入到 catalina.out 文件中,我们可以通过tail -f catalina.out 来跟踪Tomcat 和相关应用运行的情况 在windows下,我们使用startup.bat启动Tomcat以后,会发现catalina日志与Linux记录的内容有很大区别,大多信息只输出到屏幕而没有记录到catalina.out里面。 本文的内容就是要实现在windows下,将相关的控制台输出记录到后台的catalina.out文件中以便将来查看。 重启tomcat,就会发现在logs文件夹下出现了catalina.out文件,把原来控制台的信息全写进去了。但输出的这个catalina.out文件,是一直增长的,也就是文件会越来越大。 3、如果想要实现 catalina.out 按日期自动切割的话,需要下载 cronolog-1.6.1-win32 ,并把 cronolog.exe 放在Tomcat 服务器的 bin 目录下。
手机留言请访问:http://www.esqabc.com 1,处理Tomcat日志文件catalina.out过大问题 a,利用Linux自带的logrotate程序来处理catalina.out的文件过大 { #要轮转的文件 copytruncate # 创建新的catalina.out副本后,截断源catalina.out文件 notifempty # 如果是空文件的话, 文件大于100MB时,就轮转 } 方案:2 /home/tomcat/logs/catalina.out{ #要轮转的文件 copytruncate # 创建新的catalina.out副本后 ,截断源catalina.out文件 notifempty # 如果是空文件的话,不转储 daily # 每天进行catalina.out文件的轮转 rotate 还包括我们上面刚创建的tomcat文件; /etc/logrotate.d/tomcat文件会触发/home/tomcat/utr/logs/catalina.out文件的轮转。
/restart.sh && tail -f logs/catalina.out 同步文件到另一台服务器 scp -r 查看定时任务 crontab -l 编辑定时任务 crontab -e 定时重启tomcat 15 3 * * * /usr/local/tomcat/restart.sh >> /usr/local/tomcat-restart.out 查看日志尾行 tail -f logs/catalina.out 日志搜索统计等 grep 日志中含关键字的行 grep 'Exception' catalina.out 日志中含关键字的行统计 grep 'Exception' catalina.out -c Nginx
前言 tomcat日常运行会产生很多日志,系统运行时的日志主要集中在catalina.out文件中,随着日志的积累,该文件会越积越多,不利于后期日志查询,也不好全删文件。 思路 首先写一个sh脚本将catalina.out文件内容复制到一个新的日志文件中,复制完以后将catalina.out清空。 然后设置定时任务每天执行脚本即可。 步骤 新建auo_deal_log.sh脚本,编写一下脚本 cp /opt/apache-tomcat-8.0.47/logs/catalina.out /opt/apache-tomcat-8.0.47 /logs/catalina-log/catalina_`date +%Y%m%d`.log echo "" > /opt/apache-tomcat-8.0.47/logs/catalina.out
然后又看了下,其中最大的是catalina.out,占了7.8G,emmm... 啥也不说了,服务器总内存也才50g,赶紧清理掉吧。然后再写个每天清理的脚本。 tomcat/logs下面主要有这么几种日志文件 catalina.out 用于记录tomcat服务日至,一般项目报错可以在这看具体异常问题。 比如以logback为例,如果配置ch.qos.logback.core.ConsoleAppender则会输出到catalina.out里。 清理catalina.out 查看日志信息: 11tail -n 500 /usr/local/apache-tomcat-8.5.38/logs/catalina.out 清空日志信息:可以参考https 定时清空日志 x1添加脚本clean.sh(清空catalina.out和30天以前其他一些日志,logs_path为日志路径)23#!