精华内容
下载资源
问答
  • tomcat打包日志的脚本

    2018-05-25 17:48:14
    脚本目的:将每一个tomcat应用下的日志每一天进行打包压缩加密。1.log目录下 基本上所有的日志都是带有日期的。 是将log目录下的同一天的日志一起打包呢?还是每个日志单独打包?2.ERROR INFO FATAL WARN目录下的...

    脚本目的:将每一个tomcat应用下的日志每一天进行打包压缩加密。

    1.log目录下 基本上所有的日志都是带有日期的。

      是将log目录下的同一天的日志一起打包呢?还是每个日志单独打包?

    2.ERROR INFO FATAL WARN目录下的日志也不要忘记清理,第一次写的脚本就忘记清理了。

    #!/bin/bash
    yesterday=$(date -d"1 day ago" +"%Y-%m-%d")
    delday=$(date -d"180 day ago" +"%Y-%m-%d")
    for app in  $(ls /mnt/www/)
     do
       log_amount=$(ls /mnt/www/${app}/logs/ | wc -w)
       if [  $log_amount -gt 0  ];then
       cd /mnt/www/${app}/logs
       ##覆盖掉 catalina.${yesterday}.log 这个日志。因为catalina.out这里面的日志已经包含了。
       cp catalina.out catalina.${yesterday}.log && echo "" > catalina.out
        for log_name in $(ls *$yesterday*)
          do
          tar -czf - $log_name --remove-files | openssl des3 -salt -k LaiSzPbT -out $log_name.tar.gz
          done
        #用find来删除过期日志的话,没有结合上下文,效率低下。
        #find $BASE -mtime +180 -name "*.tar.gz" -exec rm -f {} \; &>/dev/null
        rm -f *${delday}*
        for dir in {ERROR,FATAL,INFO,WARN}
         do
          cd /mnt/www/${app}/logs/$dir
          tar -czf - *$yesterday* --remove-files | openssl des3 -salt -k LaiSzPbT -out $dir.$yesterday.tar.gz
          rm -f *${delday}*
         done
       fi
     done


    展开全文
  • 文章目录一、场景1、环境2、目的二、Linux相关配置1、相关环境...随着时间推移,tomcat下的日志文件catalina.out越来越大,当查看日志时效率低下。所以,为了方便日志的查阅,将catalina.out文件按天定时分割打成...

    一、场景

    1、环境

    CentOS 7.0,Tomcat 8.0.33 ,(jdk-1.8.0_171)

    2、目的

    随着时间推移,tomcat下的日志文件catalina.out越来越大,当查看日志时效率低下。所以,为了方便日志的查阅,将catalina.out文件按天定时分割打成tar包。也方便了以后按时间清理不必要的日志文件。

    二、Linux相关配置

    1、相关环境配置

    首先,在CentOS 7.0上配置好JDK环境,安装好Tomcat。Linux下JDK配置具体可参考:Linux下的JDK配置

    我的Tomcat如下:两个Tomcat分别为apache-tomcat-8.0.33-25081-25080-25082和apache-tomcat-8.0.33-26081-26080-26082

    [root@songsir02 songsir]# ll
    total 233140
    drwxr-xr-x.  9 root    root          160 Oct 19 03:29 apache-tomcat-8.0.33-25081-25080-25082
    drwxr-xr-x.  9 root    root          160 Oct 19 00:09 apache-tomcat-8.0.33-26081-26080-26082
    -rw-r--r--.  1 root    root      9252868 Aug 28 03:34 apache-tomcat-8.0.33.updated.tar.gz
    drwxr-xr-x.  8    1002    1002       255 Mar 28  2018 jdk1.8.0_171
    -rw-r--r--.  1 root    root    194421880 Aug 28 03:33 jdk-1.8.0_171-shopin.tar.gz
    drwxr-xr-x.  2 root    root            6 Oct 18 23:21 rabbitmq
    -rw-rw-r--.  1 songsir songsir       662 Oct 19 00:28 tomcatLog.sh
    drwxr-xr-x. 11    1001    1001      4096 Aug 28 04:21 zookeeper-3.4.10
    -rw-r--r--.  1 root    root     35042811 Aug 28 04:08 zookeeper-3.4.10.tar.gz
    

    2、创建打包脚本

    新建tomcatLog.sh文件,在里面添加命令如下:

    dir=/home/songsir/
    log=/logs/
    date=$(date +%F-%H)
    for i in  apache-tomcat-8.0.33-25081-25080-25082 apache-tomcat-8.0.33-26081-26080-26082
    do
            cd $dir
            if [ -d $i ]
            then
                    cd /tmp
                    cd $dir$i$log && cp -fr catalina.out catalina.out.$date.bak&& tar -czf catalina.out.$date.tar.gz catalina.out.$date.bak\
                    && cat catalina.out > catalina_old.out \
                    && rm -fr catalina.out.$date.bak \
                    &&cat /dev/null > catalina.out
                    #echo $i $dir$i$log"catalina.out"
            else
                    echo "directory is not "
            fi
    done
    

    上面命令只需要dir改成自己的Tomcat所在目录,然后把Tomcat名称改成自己的Tomcat名称即可。

    3、创建定时任务命令

    [root@songsir02 songsir]# crontab -e
    

    添上命令保存即可

    # 分  时  日  月  周  命令   */2表示每两天
    # 每两天的一点执行一次
    1 1 */2 * * /bin/sh /home/songsir/tomcatLog.sh
    

    三、执行效果

    [root@songsir02 songsir]# cd apache-tomcat-8.0.33-25081-25080-25082/logs
    [root@songsir02 logs]# ll
    total 48
    -rw-r--r--. 1 root root     0 Oct 19 03:48 catalina_old.out
    -rw-rw-rw-. 1 root root     0 Oct 19 03:48 catalina.out
    -rw-r--r--. 1 root root   128 Oct 19 03:48 catalina.out.2018-10-19-03.tar.gz
    

    打包好的日志文件如上:catalina.out.2018-10-19-03.tar.gz

    展开全文
  • #!/bin/bash #作者:黄小川 #描述: 按天打包,打5天前的包 #1....gzipFileDay=`date -d "5 days ago" +%Y-%m-%d` echo "昨天的日期是:${gzipFileDay}" #2....echo "当前目录是需要打包日志:${...

    #!/bin/bash
    #作者:黄小川
    #描述: 按天打包,打5天前的包
    #1.日期:日
    gzipFileDay=`date -d "5 days ago" +%Y-%m-%d`
    echo "昨天的日期是:${gzipFileDay}"

    #2.日志目录
    basePath=/data1/tomcat/logs

    cd "$basePath"

    #当前目录
    echo "当前目录是需要打包的日志:${basePath}";

    #3.文件前缀
    logkey="catalina.${gzipFileDay}.log"
    echo "$logkey";

    #当前时间
    dangqianshijian=`date`
    echo "当前时间是:${dangqianshijian}";


    #判断日志是否存在
    if [ ! -f "${logkey}" ];then
        echo "日志不存在要退出";
        exit
    fi

    #4.判断包是否存在
    if [ ! -f "${logkey}.gz" ];
    then
        #不存在,打包
        echo "${logkey}.gz does not exist.";
        echo "打包不存在,打包开始执行...";
        gzip ${logkey}


        #列出打包文件
        echo "打包完成";
        echo "打包文件名是: ${logkey}.gz";

        #退出
        exit 0
    else
        #判断存在;退出
        echo "${logkey}.gz is exist.";
        if [ ! -f "${logkey}.gz is exist." ];then
        echo "5天之前打的包已经存在";
        exit 0
        fi
    fi

    #退出
    exit

    展开全文
  • 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 {} \;

    展开全文
  • Linux下 Tomcat日志按天压缩打包,压缩包保留7天 新加 timePackLogs.sh #!/bin/bash #author: #date: #department: echo `date '+%Y-%m-%d %H:%M:%S'`" 打包程序执行开始!"; file_path=/home/web/tomcat/...
  • 今天在将自己编写一个小功能的SpringBoot 项目部署至Tomcat 中,日志是采用logback。 项目在eclipse 中正常输出相关日志信息但是在Tomcat 中,日志没有正常输出,今天将遇到的情况总计,以备后续参考。 现将我解决...
  • 提示可以去看tomcat的logConnected to server[2020-08-04 11:19:10,680] Artifact h5demo:Web exploded: Artifact is being deployed, please wait...04-Aug-2020 11:19:10.858 信息 [RMI TCP Connection(3)-1...
  • docker制作基于tomcat的项目镜像 / 将war包项目打包成docker镜像
  • 因生产环境的tomcat日志太多,需要做自动化清理,只留90内的,所以90天以外的就直接删除了,90内的就要用脚本批量打包再删除原文件 脚本如下: [root@aa] # cat for.sh #!/bin/bash tomcat_log=/usr/local/tomcat/...
  • 笔记总结自网易JavaWeb课程日志Tomcat日志记录了服务器的运行情况,包括服务器本身以及我们设计的web程序,对于服务器端来说,问题只有在进行数据访问时才会体现出来,运行错误只能通过日志去查看错误信息,并进行...
  • 打包好的war包无法在CentOS的tomcat运行。...查看进入Tomcat的logs文件夹中查看日志,发现日志上说Tomcat使用的端口被占用了,于是使用CentOS查找使用8080端口的程序,kill掉该程序后再次启动Tomcat
  • 1. Spring boot集成外置Tomcat 注意:Spring Boot 2.X要使用Tomcat 8及以上的版本。 1.1 修改依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-...
  • tomcat日志分割并压缩

    千次阅读 2019-05-06 14:27:10
    #Name:tomcat日志分割 按照100M一个 #Author:sundonglin #Version:2.0 DATE=date "+%Y%m%d" HOUR=date +%H DIR="/home/tomcat/tomcat-7.0.64/logs/catalina/catalina_" zipr=“catalina_” delete_path="/home/tomc....
  • 前言 嗯~~他们都说红色标题喜庆...也就是将tomcat下面的 catalina.out(默认日志输入文件)分隔成独立的日志文件,名字以catalina.year-month-day.log命名,例如catalina.2018-07-23.log ps:如果对linux crontab 和...
  • docker安装tomcat打包tomcat镜像

    千次阅读 2018-12-28 17:02:49
    12. 进入容器内部后可以查看一下tomcat启动日志,启动成功后可直接访问 ip:端口号 加你自己的项目名以及路径 使用Dockerfile制作一个tomcat镜像 准备好一个linux版本的jdk和tomcat 1. 新建一个...
  • tomcat 日志分割脚本

    2017-12-15 15:06:42
    每天晚上11点50切割日志文件,同时删除超过30天的日志 log_path=/usr/local/tomcat/logsd=date +%Y-%m-%dd90=date -d'30 day ago' +%Y-%m-%dcd ${log_path} && cp catalina.out $log_path/cron/catalina.out...
  • Tomacat输出乱码问题 TomCat>>conf>>logging.properties 回到 IDEA TomCat :: Edit Configurations 此处为TomcatSmart(白嫖的社区版)
  • rpm打包tomcat

    2019-10-08 09:44:50
    1.制作rpm包 yum install rpm-build -y 2.创建工作目录 mkdir -pv ~/rpmbuild/{...3.准备要打包的文件 tomcat请自行下载 下载后修改配置文件,关闭ajp 8009监听 <!-- <Connector port="8009" protocol...
  • 解决注册服务启动后不打印日志方法!!程序报错等莫名其妙疑难问题!!
  • 1.打开你的的项目结构,看你的modules里面没有Web。如果有的话点“”-“”号,把这个去掉,这个需要IDEA自动生成给到我们。 2.打开pom.xml文件,添加war这一行,打成war包生成web项目 3.再刷新你的pom文件,再去...
  • 每天备份tomcat日志

    2018-11-02 15:43:00
    #!/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...#将昨天tomcat日志mv到备份目录 /usr/bin...
  • 我们想要将一个war包打包到docker的镜像里面,思路和过程都非常简单 1、项目代码打war包 2、编写一个dockerfile文件 (1)以tomcat镜像为基础 (2)复制tomcat的配置文件到镜像中(这里是为了修改tomcat的端口) (3...
  • Tomcat日志备份小脚本

    2019-05-10 20:16:00
    #定义tomcat日志文件所在目录 path=/opt/tomcat/logs cd $path #catalina.out日志文件备份 #获取前一天的日期 bak_date=`date +%Y-%m-%d -d "1 days ago"` #备份catalina.out日志,后面添加日期 cp catalina.out ...
  • 在IDEA上方的菜单栏中,打开最后一个help ,按照下述步骤执行 HELP-> Edit Custom VM OPtions 中加 -Dfile.encoding=utf-8 重启idea,日志输出中文乱码问题即可解决。
  • tomcat是个很常用的web容器.方便配置操作简单.以下将会从几个方面去梳理,首先我们在刚接触工作的时候.迫切的需要掌握发版这项技能.发版为了方便文件传输,需要将文件打包.一般根据文件不同,会打成jar,war,tar,tar.gz...
  • 打包之后 我们得到了一个war 得到了这个boot.war包 我们把它放到 tomcat中 就可以正常运行了 访问起来也是没有问题的 之前在本地的HTML 还有 freemarker 都可以访问了 本地怎么搞 现在...
  • 导出项目为war包,或者在本地tomcat中找到项目文件夹压缩成zip。 上传压缩包到服务器tomcat/webapps下 执行ps -ef|grep java命令查看项目进程id。 假设上一步查出root 20535 20468 0 11:12 pts/0 00:00:00 grep java...
  • echo `date '+%Y%Y-%m-%d %H:%M:%S'`" 打包日志执行开始!"; echo "默认打包所有的日志文件" sevenDaysAgoDate=`date -d "7 days ago" +%Y%Y-%m-%d` #筛选打包日志文件的截止日期(此处为获取当前日期) #起始日期...
  • tomcat 日志文件过大问题解决方案

    千次阅读 2020-05-06 11:06:01
    记录一次解决日志文件过大的解决办法 当catalina.out文件大于2g时,不便于查看异常记录,给排查问题造成一定的困扰。因此为了避免此场景的发生,需优化日志记录。...3,采用log4j接管tomcat日志,以弥补tomca...
  • shell编程—自动备份tomcat日志详解

    万次阅读 2018-11-12 16:01:05
    怎么样用灵活的shell脚本自动备份tomcat日志,从而实现运维自动化,减轻工作压力。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,163
精华内容 11,265
关键字:

tomcat打包日志