精华内容
下载资源
问答
  • 最近在部署tomcat时,发现日志文件太大了,每次都生成到catalina.out中,查看错误不好查看,就做了一个tomcat按天生成日志,并定时清理功能。 二、按天生成日志修改 1、在网上看到许多都是用Cornolog来按天生成,...

    Tomcat日志按天生成并定时清理

    • 安装cronolog

    1、首先查看是否安装cronolog:which cronolog

    2、下载安装包,我这下载的是cronolog-1.6.2.tar.gz

     

    3、放到自己有权限的目录下面比如 /home/changhu/soft

    4、解压tar -zxvf cronolog-1.6.2.tar.gz

    5、进入cronolog安装文件所在目录:cd cronolog-1.6.2

    6、运行安装(必须先不改文件进行安装,不然会报找不到文件)

    ./configure

    make

    make install

    注:此时执行make install报错,提示Error 1

     

    查看错误信息发现需要在 /usr/local/下新建sbin文件夹,但我这个账号没这个权限,修改文件夹下的./configure

    7、进入cronolog-1.6.2文件夹,有个configure开头的,打开修改如下内容为普通用户地址,修改保存后再执行一遍安装

    ./configure
    make
    make install

    嗯,现在应该是安装成功了,在目录下会多出一个sbin文件夹,里面就是cronolog的可执行文件,可以愉快的分割日志了。

    https://img-blog.csdnimg.cn/20190826215618510.png

    二、按天生成日志修改

    1、安装成功后,我们就可以按照每天来生成日志了,需要修改tomcat/bin下的catalina.sh,找到下面这行,类似这样的行有2处:修改后第一个变量是cronnolog的地址,第二个变量是日志存放地址

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

          >> "$CATALINA_OUT" 2>&1 &

    修改如下:

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

    2>&1 | /usr/local/sbin/cronolog /usr/local/tomcat/logs/catalina.%Y-%m-%d.out >>/dev/null &

    截图如下:

     

    2、将 touch "$CATALINA_OUT"改为打印内容echo "11111"

     

    3、保存后,重新启动tomcat就可以了

    三、定时清理日志文件

    1、在bin目录下创建一个定时清理脚本

    cd ./bin

    touch clean.sh

    vi ./clean.sh

     2、脚本内容

    #!/bin/bash
    echo "del file start....."
    find /applog/ -mtime +15 -name '*.out'  -exec rm -rf {} \;
    echo "del file end"

     

    3、给文件授权,并添加可执行文件

    chmod +X ./clean.sh

    chmod 777 ./clean.sh

    4、配置Conrolog定时清理日志,使用crontab -l查看当前任务,在确认没有其他任务执行的情况下,使用crontab -e新建一个定时执行任务,输入如下内容:

    #每天早上130执行脚本

    30 01 * * * /jboss/tomcat-9.0.39/bin/clean.sh

    输入完成后,输入wq进行保存

    至此清理配置即完成了

    5crontab常用命令如下(可参考该链接 Linux crontab命令.

    #执行文字编辑器来设定时程表,内定的文字编辑器是 VI

    crontab -e

    #删除目前的时程表

    crontab    -r

    #列出目前的时程表

    crontab    -l

    四、去掉localhost_access_log日志

    注释掉tomcat中server.xml中的内容

            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

                   prefix="localhost_access_log" suffix=".txt"

                   pattern="%h %l %u %t &quot;%r&quot; %s %b" />

     

    展开全文
  • Tomcat日志配置与清理

    2021-08-08 07:11:36
    今天看了下tomcat日志,发现已经有8g多了... 仔细想想大概有2年多没有处理过日志了。因为博客线上也没出过啥问题,所以压根就没怎么看过日志。毕竟不是运维 ... 这方面确实没咋注意,服务器还是有很多需要搞清楚的 ...

    今天看了下tomcat日志,发现已经有8g多了...  仔细想想大概有2年多没有处理过日志了。因为博客线上也没出过啥问题,所以压根就没怎么看过日志。毕竟不是运维 ... 这方面确实没咋注意,服务器还是有很多需要搞清楚的 。

    f01e2b7c349203f0d8b6ec9cde231dbe.png

    然后又看了下,其中最大的是catalina.out,占了7.8G,emmm... 啥也不说了,服务器总内存也才50g,赶紧清理掉吧。然后再写个每天清理的脚本。

    d986705197c34d66cc3f2794c59e03db.png

    日志过大搞不好会把磁盘爆满服务器直接宕机。所以想着还是优化下日志文件。

    tomcat/logs下面主要有这么几种日志文件

    catalina.out

    用于记录tomcat服务日至,一般项目报错可以在这看具体异常问题。catalina.out其实是tomcat的标准输出(stdout)和标准出错(stderr),这是在tomcat的启动脚本里指定的,如果没有修改的话stdout和stderr会重定向到这里。所以我们在应用里使用System.out打印的东西都会到这里来。另外,如果我们在应用里使用其他的日志框架,配置了向Console输出的,则也会在这里出现。比如以logback为例,如果配置ch.qos.logback.core.ConsoleAppender则会输出到catalina.out里。

    localhost_access_log

    用于记录资源访问日志, 这个日志文件可记录所有http的get,post访问日志。相应的ip地址,访问时间,请求方式(get,post),请求action名称…..都会输出来。这样有利于我们排查一些问题,还可以采集、存储、分析日志数据得到有价值的东西。

    生成这个文件的配置为:xxxxxxxxxx

    prefix="localhost_access_log." suffix=".txt"

    pattern="%h %l %u %t "%r" [%{postdata}r] %s %{Referer}i %{User-Agent}i %T %b" />

    pattern参数详解参数含义%a这是记录访问者的IP,在日志里是127.0.0.1

    %A这是记录本地服务器的IP,在日志里是192.168.254.108

    %b发送信息的字节数,不包括http头,如果字节数为0的话,显示为-

    %B发送信息的字节数,不包括http头。

    %h服务器的名称。如果resolveHosts为false的话,这里就是IP地址了,例如我的日志里是10.217.14.16

    %H访问者的协议,这里是HTTP/1.0

    %l官方解释:Remote logical username from identd (可能这样翻译:记录浏览者进行身份验证时提供的名字)(always returns ‘-’)

    %m访问的方式,是GET还是POST

    %p本地接收访问的端口

    %q比如你访问的是aaa.jsp?bbb=ccc,那么这里就显示?bbb=ccc,就是querystring的意思

    %rFirst line of the request (method and request URI) 请求的方法和URL

    %shttp的响应状态码

    %S用户的session ID,这个session ID大家可以另外查一下详细的解释,反正每次都会生成不同的session ID

    %t请求时间

    %u得到了验证的访问者,否则就是"-"

    %U访问的URL地址,我这里是/rightmainima/leftbott4.swf

    %v服务器名称,可能就是你url里面写的那个吧,我这里是localhost

    %DTime taken to process the request,in millis,请求消耗的时间,以毫秒记

    %TTime taken to process the request,in seconds,请求消耗的时间,以秒记

    manager.log

    用于记录tomcat通过manager下的web项目管理日志

    ....还有其他的一些日志,如果Tomcat以服务的方式运行还会产生以“服务名-stdout.yyyy-mm-dd.log”和“服务名-stderr.yyyy-mm-dd.log”命名的日志,用于记录标准输出日志和标准错误流日志。还有一个commons-daemon.yyyy-dd-mm.log 用于记录安装或者移除Tomcat服务过程产生的日志。

    这些日志记录级别都是info级别。

    清理catalina.out

    查看日志信息:tail -n 500 /usr/local/apache-tomcat-8.5.38/logs/catalina.outx

    cp /usr/local/apache-tomcat-8.5.38/logs/catalina.out /usr/local/apache-tomcat-8.5.38/logs/catalina$(date -d "today" +"%Y%m%d_%H%M%S").log&&echo "" > /usr/local/apache-tomcat-8.5.38/logs/catalina.out

    定时清空日志x

    添加脚本clean.sh(清空catalina.out和30天以前其他一些日志,logs_path为日志路径)

    #!/bin/bash

    logs_path="/usr/local/apache-tomcat-8.5.38/logs/"

    d=`date +%Y-%m-%d`

    cp $logs_path/catalina.out $logs_path/catalina.${d}.out

    >$logs_path/catalina.out;

    find $logs_path -mtime +30 -name "catalina.*.out" -exec rm -rf {} \;

    find $logs_path -mtime +30 -name "localhost.*.log" -exec rm -rf {} \;

    find $logs_path -mtime +30 -name "localhost_access_log.*.txt" -exec rm -rf {} \;

    find $logs_path -mtime +30 -name "catalina.*.log" -exec rm -rf {} \;

    find $logs_path -mtime +30 -name "manager.*.log" -exec rm -rf {} \;

    find $logs_path -mtime +30 -name "host-manager.*.log" -exec rm -rf {} \;

    find $logs_path -mtime +30 -name "fileservice.log.*" -exec rm -rf {} \;

    添加脚本权限(777权限代表可读可写可执行,该登录用户(可以用命令id查看)、他所在的组和其他人都有最高权限)

    chmod 777 /usr/local/apache-tomcat-8.5.38/logs/clean.sh

    开启定时任务

    crontab -e  (进入定时任务的编辑界面中)

    添加下面代码(每月最后一天23点执行 cron表达式有很多在线生成器)

    0 0 23 L * ? /usr/local/apache-tomcat-8.5.38/logs/clean.sh

    每天备份tomcat日志脚本xxxxxxxxxx

    #!/bin/bash

    Backup_Home=/data/backup-log

    mkdir -p $Backup_Home

    Log_Home=/data/Tomcat/logs

    App_Log_Home=/data/app/tomcat/log

    Date=`date -d 'yesterday' '+%Y-%m-%d'`

    #将昨天tomcat日志mv到备份目录

    /usr/bin/mv $Log_Home/catalina.$Date.log $Backup_Home

    /usr/bin/mv $Log_Home/localhost.$Date.log $Backup_Home

    cd $Backup_Home

    tar -zcf catalina_"$Date"_log.tar.gz catalina.$Date.log

    tar -zcf localhost_"$Date"_log.tar.gz localhost.$Date.log

    if [ $? -ne 0 ]; then

    echo "$Date:备份失败并退出" >> backup_err.log

    exit

    else

    echo "$Date:***打包成功正在删除源日志文件***" >> backup_access.log

    /usr/bin/rm -rf catalina.$Date.log

    /usr/bin/rm -rf localhost.$Date.log

    fi

    #==========================================================================

    echo "app日志开始备份"

    /usr/bin/mv $App_Log_Home/springboot.out $Backup_Home/springboot_"`date +%F`".out

    cd $Backup_Home

    tar -zcf springboot_"`date +%F`".tar.gz springboot_"`date +%F`".out

    if [ $? -ne 0 ]; then

    echo "`date +%F`:app日志备份失败并退出" >> backup_err.log

    exit

    else

    echo "`date +%F`:app日志打包成功,正在删除源文件" >> backup_access.log

    /usr/bin/rm -rf springboot_"`date +%F`".out

    fi

    #清理日志目录

    find Backup_Home/* -mtime +30 -exec rm {} \;

    展开全文
  • 一、logrotate 配置logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序...

    一、logrotate 配置

    logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。

    logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 。

    logrotate 的配置文件是 /etc/logrotate.conf。主要参数如下表:

    参数 功能

    compress 通过gzip 压缩转储以后的日志

    nocompress 不需要压缩时,用这个参数

    copytruncate 用于还在打开中的日志文件,把当前日志备份并截断

    nocopytruncate 备份日志文件但是不截断

    create mode owner group 转储文件,使用指定的文件模式创建新的日志文件

    nocreate 不建立新的日志文件

    delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩

    nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。

    errors address 专储时的错误信息发送到指定的Email 地址

    ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。

    notifempty 如果是空文件的话,不转储

    mail address 把转储的日志文件发送到指定的E-mail 地址

    nomail 转储时不发送日志文件

    olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统

    noolddir 转储后的日志文件和当前日志文件放在同一个目录下

    prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行

    postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行

    daily 指定转储周期为每天

    weekly 指定转储周期为每周

    monthly 指定转储周期为每月

    rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份

    tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~

    size size 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • 清除Tomcat日志

    2021-08-11 15:33:47
    **清除Tomcat日志** Tomcat日志清理日常必不可少,这里记录一下平时使用命令。 1、清除catalina.out文件 cd /wltiot/tomcat/apache-tomcat-7.0.99/log echo -n " " > catalina.out
    										**清除Tomcat日志**
    

    Tomcat日志清理日常必不可少,这里记录一下平时使用命令。

    0.查日志文件占空间大小
    cd /wltiot/tomcat/apache-tomcat-7.0.99/logs
    ll -ah
    1、清除catalina.out文件
    cd /wltiot/tomcat/apache-tomcat-7.0.99/logs
    echo -n " " > catalina.out

    2.定时自动清除catalina.out文件
    cd /wltiot/tomcat/apache-tomcat-7.0.99
    //新建一个文件
    vi auotcler.sh
    //在文件写入该代码,保存退出
    #!/bin/bash
    logs_path="/wltiot/tomcat/apache-tomcat-7.0.99/logs"

    find $logs_path -mtime +30 -name “localhost..log" -exec rm -rf {} ;
    find $logs_path -mtime +30 -name "localhost_access_log.
    .txt” -exec rm -rf {} ;
    find $logs_path -mtime +2 -name “catalina..out" -exec rm -rf {} ;
    find $logs_path -mtime +30 -name "manager.
    .log” -exec rm -rf {} ;
    find $logs_path -mtime +30 -name “host-manager..log" -exec rm -rf {} ;
    find $logs_path -mtime +30 -name "fileservice.log.
    ” -exec rm -rf {} ;
    find $logs_path -mtime +30 -name “common_.log" -exec rm -rf {} ;
    find $logs_path -mtime +30 -name "order_
    .log” -exec rm -rf {} ;
    find $logs_path -mtime +30 -name “prod_.log" -exec rm -rf {} ;
    find $logs_path -mtime +30 -name "user_
    .log” -exec rm -rf {} ;
    find $logs_path -mtime +30 -name “utils_*.log” -exec rm -rf {} ;

    $logs_path/catalina.out;

    //设置可执行权限
    chmod 777 autocler.sh
    //添加下行代码
    crontab -e
    //每天0点执行一次,注意文件路径的正确性
    00 00 * * * /wltiot/tomcat/apache-tomcat-7.0.99/autocler.sh
    //每天18点30分执行一次
    30 18 * * * /wltiot/tomcat/apache-tomcat-7.0.99/autocler.sh
    使用 crontab -l 命令查看是否设置成功
    crontab -l
    重启定时任务
    service crond restart

    如果输入crontab -e 提示 -bash: crontab: command not found 那么需要安装crontab
    3.安装crontab

    yum install -y vixie-cron

    yum install crontabs

    然后启动服务

    /sbin/service crond start

    加入开机启动

    chkconfig --level 35 crond on

    设置每24小时执行清理日志任务

    • */23 * * * /wltiot/tomcat/apache-tomcat-7.0.99/autocler.sh

    然后保存退出:wq

    最后重启服务

    service crond restart

    展开全文
  • 脚本摘要于百度链接:...定期删除TOMCAT日志文件,参考代码如下:#!/bin/bash#清理tomcat日志的脚本#日志大小限制设置( 1M 字节),超出即清理LOG_FILE_SIZE=1024000#定义日志文件位置logs=(/srv/tomcat6/logs/cata...
  • 1、创建批处理说明:forfiles是2003自带的命令,非常好用.forfiles /p "F:\logs" /s /m *.* /d -31/c "cmd /c del @path"forfiles:/p 指定的路径/s 包括子目录/m 查找的文件名掩码 (*.txt\*.log\*.*)/d 指定日期,有...
  • /bin/bash#---------------------------------------------------------#清除tomcat服务器缓存及日志(work、logs、temp)##Filename:clear-tomcat-cache.sh#Author:zll#Time:2016/11/26#----------------------------...
  • 查看tomcat日志

    2021-02-03 01:45:48
    CentOS 7安装 tomcatyum安装tomcatyum install tomcattomcat webapp目录cd /var/lib/tomcattomcat配置文件目录cd /etc/tomcattomcat日志目录cd /var/log/tomcatftp上传war文件到 /var/lib/tom...文章nurmemet2017-07...
  • Tomcat 日志机制

    2021-03-06 19:08:01
    日志机制简介Tomcat 的内部日志使用 JULI 组件,这是一个 Apache Commons 日志的重命名的打包分支,默认被硬编码,使用 java.util.logging 架构。这能保证 Tomcat 内部日志与 Web 应用的日志保持独立,即使 Web 应用...
  • 一般日志不再输出都是根目录没有空间了,可以通过df -h命令查看一下磁盘空间情况,看看根目录空间占用情况,如果根目录已满,请清理根目录下的无用文件,然后重新启动Tomcat即可(来自真实的工作经历) ...
  • 查看方式1、先切换到:cd usr/local/tomcat5/logs2、tail -f catalina.out3、Ctrl+c 是退出tail命令/alt+E+R重置部署常用指令1、ps aux | grep tomcat 查看tomcat 进程ps -ef|grep java 查看Tomcat是否已关闭2、...
  • 清理tomcat日志文件echo " " > catalina.out查看tomcat日志文件tail -f catalina.outlinux常用命令配置环境变量vi /etc/profile环境变量生效source /etc/profile解压文件tar zxvf apache-tomcat-8.5.37.tar.gz...
  • 一、前言随着每天业务的增长,Tomcat 的catalina.out日志 变得越来越大,占用磁盘空间不说。要查看某个时候的日志的时候,庞大的日志让你顿时无从下手,所以日志的切割的变得刻不容缓。而且,切割后的日志,还可以...
  • tomcat日志,Catalina日志和access访问日志配置按天数滚动并且指定最大保存天数的配置方式,简单分析访问日志进行清理的实现机制。
  • Tomcat 下实现 catalina.out 日志分割 1.概述 1.1 问题描述 由于 Tomcat 的 catalina.out 日志量不断增加,占用空间较大,且默认是不滚动的,不便于分析问题。因此需要对其进行日志分割,并进行清理。 1.2 实现...
  • 系统版本:centos 7 vim /etc/crontab 编辑定时配置文件 (每天 18点42分与23点29分) tomcat 脚本 activemq 重启脚本
  • tomcat日志进行打包且异地备份 vim /tmp/shell/tomcat_log.sh // An highlighted block #!/bin/bash echo `date '+%Y%Y-%m-%d %H:%M:%S'`" 打包日志执行开始!"; echo "默认打包所有的日志文件" ...
  • 本文介绍的是编写脚本定时清理tomcat运行日志方法 1、创建记事本文件cleanLog 2、记事本cleanLog中写入以下代码 #清空tomcat日志信息 “>“ 符号后配置的是tomcat运行输出日志的绝对路径 cat /dev/null > /...
  • Java Tomcat日志文件说明详解发布时间:2019-09-22编辑:星王原创阅读(574)tomcat提供的日志机制为我们提供了维护便利,在这里对log日志文件一些用处加入说明。一、位置:tomcat日志tomcat文件目录的log目录下...
  • Linux 定期切割Tomcat catalina.out和清理log日志Tomcat日志的清理有两种情况第一种:日志本身就以日期保存,每天一个文件的,比如localhost.2020-04-24.log;这类日志只需要卡一个定时器,定期删除即可。第二种:...
  • Linux中tomcat日志分割需要用到cronolog1. 安装cronologtar –zxvf cronolog-1.6.2.tar.gz./configure && make && make install解压,编译, 安装(安装后目录一般在/usr/local/中)2. 为了能够一次正确...
  • Tomcat内存设置详解

    2021-02-27 15:34:29
    Java内存溢出详解一、常见的Java内存溢出有以下三种:1.java.lang.OutOfMemoryError: Java heap space----JVM Heap(堆)溢出JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-...
  • 有些应用会在tomcat日志文件中打印很多日志,隔一段时间后出现日志文件大小为10G,这时候就要备份日志,然后清空tomcat日志文件,以防tomcat日志太大导致tomcat奔溃。 1.先停掉tomcat(略),然后备份日志文件,备份...
  • 背景生产环境中Tomcat每天都会产生很多日志,如果不清理磁盘容量会不够,手动清理又太麻烦。因此写个脚本每天定时去删除5天前(根据实际情况而定)的日志文件。编写脚本1.写一个/usr/local/script/cleanTomcatlog.sh...
  • 描述:Tomcat服务下面的catalina.out 每天几百MB 的数据,不清理就越来越大,有时追个BUG无法重现,只能去追日志,这个时候你玩完了 !!! 虽然可以查找,但是几个G大小的日志文件,你去找某个未知的日志信息,那...
  • /bin/bashecho 开始寻找日志echo 开始删除host-manager日志find /opt/tomcat8/logs -mtime +7 -name "host-manager.*.log" -exec rm -rf {} \; #找到超过7天的日志执行删除操作echo 开始删除localhost_access_log...
  • 一、tomcat的bin路径下新建.sh脚本文件clean.sh 内容如下: 增加 catalina.out 按日生成 过期清理 1.复制catalina.out 按日期命名 2.清空catalina.out 3.找到30天以前的各种log文件并删除 注:30可按自己的需求改成...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,885
精华内容 12,754
关键字:

tomcat设置清日志