笔者一共有3台tomcat服务器,一共4个tomcat服务,未来还会增加4个作为负载,笔者想通过在存储服务器对tomcat服务的日志进行远程切割和备份到存储上。

文中采用清空日志的方式,优点是不用重启tomcat就能回收磁盘空间,缺点可能会丢失一小部分日志内容,所以笔者定时在了夜里3点执行。

本文中远程执行命令和scp用到了expect脚本,请查看expect的博文http://www.cnblogs.com/Eisenhower/p/7900907.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/bin/sh
 
back_date=`date -d "yesterday" +%F`    #定义日期变量为昨天的日期
 
back_month=`date -d "0-month" +%Y-%m`    #定义月份
 
#139=172.16.1.139
 
#140=172.16.1.140
 
#1521=172.16.1.152
 
#1522=172.16.1.152
 
for in {139,140,1521,1522}    #笔者152这台机器上有两个tomcat所以用1521和1522来表达
 
do
 
  if [ $n -eq 139 ];then
 
        tomcat_ip=172.16.1.139   #备份的tomcat地址
 
        tomcat_path=/data/tomcat        #tomcat路径
 
        catalina_out=139_catalina_out   #保存到本地项目路径
 
  elif [ $n -eq 140 ];then
 
        tomcat_ip=172.16.1.140
 
        tomcat_path=/data/tomcat
 
        catalina_out=140_catalina_out
 
  elif [ $n -eq 1521 ];then
 
        tomcat_ip=172.16.1.152
 
        tomcat_path=/data/tomcat
 
        catalina_out=1521_catalina_out
 
  elif [ $n -eq 1522 ];then
 
        tomcat_ip=172.16.1.152
 
        tomcat_path=/data/tomcat
 
        catalina_out=1522_catalina_out
 
fi
 
if [ ! -d /data/logs_back/$tomcat_ip/$catalina_out/$back_month ];then
 
        mkdir -p /data/logs_back/$tomcat_ip/$catalina_out/$back_month    #创建路径,以tomcatIP、月份为目录
 
fi
 
#远程执行拷贝命令,以时间命名日志进行切割
 
/data/expect.sh $tomcat_ip "cp $tomcat_path/logs/catalina.out $tomcat_path/logs/catalina"$back_date".out"
 
#远程清空catalina.out
 
/data/expect.sh $tomcat_ip ">$tomcat_path/logs/catalina.out"
 
#远程执行压缩命令,将切割的日志压缩
 
/data/expect.sh $tomcat_ip "gzip $tomcat_path/logs/catalina"$back_date".out"
 
#远程拷贝到备份目录
 
/data/expect_scp.sh $tomcat_ip:$tomcat_path/logs/catalina"$back_date".out.gz /nfs/logs_back/$tomcat_ip/$catalina_out/$back_month/
 
#将备份好的日志从远程机器上删除,笔者发现gzip在shell中并没有删除源文件,这个问题留在之后验证
 
/data/expect.sh $tomcat_ip "rm -f $tomcat_path/logs/catalina"$back_date".out*"
 
done

tomcat集群日志切割和远程备份脚本分享的更多相关文章

  1. Tomcat集群---Cluster节点配置(转)

    <!-- Cluster(集群,族) 节点,如果你要配置tomcat集群,则需要使用此节点. className 表示tomcat集群时,之间相互传递信息使用那个类来实现信息之间的传递. cha ...

  2. Linux+Apache+Tomcat集群配置

    参考: http://blog.csdn.net/bluishglc/article/details/6867358# http://andashu.blog.51cto.com/8673810/13 ...

  3. Centos下Apache+Tomcat集群--搭建记录

    一.目的 利用apache的mod_jk模块,实现tomcat集群服务器的负载均衡以及会话复制,这里用到了<Cluster>. 二.环境 1.基础:3台主机,系统Centos6.5,4G内 ...

  4. Tomcat集群---Cluster节点配置

    <!-- Cluster(集群,族) 节点,如果你要配置tomcat集群,则需要使用此节点. className 表示tomcat集群时,之间相互传递信息使用那个类来实现信息之间的传递. cha ...

  5. Apache + Tomcat集群 + 负载均衡

    Part I: 取经处: http://www.ramkitech.com/2012/10/tomcat-clustering-series-simple-load.html  http://blog ...

  6. Apache负载均衡与Tomcat集群配置学习(Windows环境)

    本文主要参考自http://www.iteye.com/topic/985404?dhcc,经由实际操作配置操并记录而成. 由于最近的一个Java开发项目用到了Tomcat中间件作为web服务器,刚开 ...

  7. FineReport关于tomcat集群部署的方案

    多台服务器集群后,配置权限.数据连接.模板.定时调度等,只能每台服务器一个个配置,不会自动同步到所有服务器. 针对上述情况,在FineReport中提供新集群部署插件,将xml配置文件.finedb/ ...

  8. Ubuntu下基于Nginx实现Tomcat集群负载均衡

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   Nginx是一款HTTP和反向代理服务器,有关它的介绍可以到网上搜一下,很多很多,不再累述.这里,我们记录一下Nginx ...

  9. window xp Apache与Tomcat集群配置--转载

    转载地址:http://www.cnblogs.com/obullxl/archive/2011/06/09/apache-tomcat-cluster-config.html 一. 环境说明 Win ...

随机推荐

  1. 深入理解计算机系统(4.1)------Y86指令集体系结构

    本章我们将进入处理器体系结构介绍的神秘海洋中,我们熟悉的手机,电脑等设备的核心硬件都离不开处理器.处理器可以称的上是人类创造的最复杂的系统之一,一块手指大小的硅片,可以容纳一个完整的高性能处理器.大的 ...

  2. Emgu.CV(二)

    小实例 class Program { static void Main(string[] args) { #region Emgu.Cv string imgPath = @"D:\tim ...

  3. WPF DelegateCommand 出现Specified cast is not valid

    使用 DelegateCommand 出现 Specified cast is not valid 最近写快捷键需要 DelegateCommand ,于是用了 DelegateCommand< ...

  4. OpenWRT (RT5350) 使能两个串口

    OpenWRT(RT5350) 默认使能一个串口(uartlite) ,当做console口了,另外一个串口(uartf)与gpio复用. 在查找资料的过程中,发现在新的内核中使用到了设备树(devi ...

  5. C++大数精度计算(带小数点)

    转: (原出处不可考,若有侵权,请联系我立即删除) 头文件: // WTNumber.h: interface for the CWTNumber class. // //////////////// ...

  6. Awesome Projects (汇聚全球所有🐮项目,你值得拥有)

    Awesome Projects SkySeraph Oct 2017 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.skyseraph.c ...

  7. Struts2运行流程-源码剖析

    本文为原创,如需转载,请标明出处:http://www.cnblogs.com/gudu1/p/7726172.html 首先说一下查看这些框架源码的感受,每一次深入探究 Spring.Struts ...

  8. vue-cli + sass 的正确打开方式

    关于在vue-cli搭建的项目中怎么配置sass,网上搜到的基本是这种答案: 但是我认为,直接将样式写在每个单文件的<style>里,是十分不明智的做法.且不说node-sass安装过程的 ...

  9. opencv之从视频帧中截取图片

    最近在训练一个人脸识别的模型,而项目训练需要大量真实人脸图片样本. 刚好项目用到opencv识别人脸,可以把每一帧图片保存下来,用此方法可以方便的获取大量的脸部样本,大约20分钟可以获取到10000张 ...

  10. mysql 安装配置

    l  下载压缩包: 官网下载地址:https://dev.mysql.com/downloads/mysql/5.1.html#downloads 第一步: 将下载的压缩包解压到你要安装的目录下 第二 ...