笔者一共有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. C#同步方法转异步

    public async Task DelayAsync() { await Task.Run(()=>Delay()); } private void Delay() { } 本作品采用知识共 ...

  2. UVa10129,Play On Words

    给出n个单词,如果一个单词的尾和另一个单词的头字符相等,那么可以相连,问这n个单词是否可以排成一列.欧拉路应用,构图:一个单词的头尾字母分别作为顶点,每输入一个word,该word的头指向word的尾 ...

  3. UVa12100,Printer Queue

    水题,1A过的 数据才100,o(n^3)都能过,感觉用优先队列来做挺麻烦的,直接暴力就可以了,模拟的队列,没用stl #include <iostream> #include <c ...

  4. 基于8211lib库对s57电子海图的解析和存储

    电子海图是为适用航海需要而绘制的包含海域地理信息和航海信息的一种数字化的专题地图,符合国际标准的电子海图数据统称为S-57电子海图.本文主要在S-57电子海图数据的理论模型和数据结构的基础上,实现对S ...

  5. 走进 UITest for Xamarin.Forms

    上一篇  走进 Prism for Xamarin.Forms 讲了简单的创建一个项目,然后添加了几个页面来回切换,这篇想先搞下 UITest 官方详细地址:https://developer.xam ...

  6. 【转】地址空间、内核空间、IO地址空间

    http://blog.csdn.net/wuxinke_blog/article/details/8769131 有这么一系列的问题,是否在困扰着你:用户程序编译连接形成的地址空间在什么范围内?内核 ...

  7. Python学习笔记(五)--Python数据类型-数字及字符串

    Python数据类型:123和'123'一样吗?>>> 123=='123'False>>> type(123)<type 'int'>>> ...

  8. 在Owin Self-Hosing下实现每个请求中共享上下文(数据)

    问题 这几天在做公司的外部WebApi网关,由于使用了OAuth2.0,所以不得不使用Owin来部署网关. 而涉及到请求上下文的问题,为了使业务层能获取到请求头的信息,又不与网关耦合,决定把请求信息写 ...

  9. Tomcat 服务器及使用Eclipse绑定Tomcat并发布应用

    一.简介 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他一些公司及个人共同开发而成 ...

  10. 关于docker使用的几个小问题(二)

    很久没写博客了,集中写几个比较有意思的小问题. 一.CentOS容器没有service命令 这是因为我们从docker官方镜像仓库中pull的最新CentOS镜像都是centos7.4 Redhat- ...