笔者一共有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. AVPlayer缓存实现

    没有任何工具能适用于所有的场景,在使用AVPlayer的过程中,我们会发现它有很多局限性,比如播放网络音乐时,往往不能控制其内部播放逻辑,比如我们会发现播放时seek会失败,数据加载完毕后不能获取到数 ...

  2. UVa1595,Symmetry

    这题居然是1A过的.....最近无比失落的心情顿时愉悦起来~ 将数据全部读入 先用二维数据来存储坐标(先把题做出来再说= =) 题目中的x,y的坐标范围是-1W到1W....在数组下标里是不能用负数保 ...

  3. Linux下简单C语言小程序的反汇编分析

    韩洋原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 写在开始,本文为因为参加MOO ...

  4. Kafka 学习笔记-基本概念

    一.基本概念 Kafka是一个分布式的,可分区的,可复制的消息系统 Kafka以由一个或多个服务以集群的方式运行,服务叫broker producer,consuer通过kafka topic发布,预 ...

  5. LeetCode 39. Combination Sum (组合的和)

    Given a set of candidate numbers (C) (without duplicates) and a target number (T), find all unique c ...

  6. 视频加载logo

    最近工作需要,收集了一些视频卡顿或加载时的透明PNG图片.

  7. OpenCV4Android背景建模(MOG、MOG2)

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃     很久以前的笔记了,分享给大家吧...OpenCV4Android中用于背景建模的类主要 ...

  8. HTTP Error 500.19 - Internal Server Error

    1.使用svn对项目进行管理 2.之前都是平安无事,忽然有一天报错:HTTP Error 500.19 - Internal Server Error,如图: 3.经过各种挣扎和求证,最后发现是项目. ...

  9. C语言学习(记录)【内存相关_1:内存基础】

    本学习是基于嵌入式的C语言学习记录(课程内容来源于某位老师的网络课程,为了证明不是在打广告,就不写出老师的名字了,感谢.) -------------------------------------- ...

  10. 在Javaava中stringBuilder的用法

    String对象是不可改变的.每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需要对字符串执行重复修改的情况下,与创建新的  ...