笔者一共有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. ftpclient 550 permission denied

    遇到一个坑,ftp服务器有主被动模式,如果ftpclient 没有设置模式,默认就是主动模式,如果ftp服务器是被动模式,那么使用ftpclient就执行上传和下载,就会失败, 添加ftpClient ...

  2. 怎么用SQL语句备份和恢复数据库?

    BACKUP DATABASE "mydb" TO DISK ='C:\mybak.db' with init RESTORE DATABASE "mydb" ...

  3. Bootstrap 禁用滚动条

    Bootstrap中禁用滚动条的方法 逻辑: 当点击弹窗按钮后,js会为body元素添加一个modal-open的类,该类主要内容如下 .modal-open .modal { overflow-x: ...

  4. Maven 开发hibernate存在的诸多问题

    项目结构: 开发平台: maven version 3.5 eclipse 4. 7 oxyen 最新:hibernate 5.x 引入问题 官网提供的必需选择只有 这个 当然还需要我们单独配置mys ...

  5. Centos7安装Python3的方法

    由于centos7原本就安装了Python2,而且这个Python2不能被删除,因为有很多系统命令,比如yum都要用到. [root@VM_105_217_centos Python-]# pytho ...

  6. 从零自学Hadoop(25):Impala相关操作下

    阅读目录 序 导入数据 查询 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一 ...

  7. svn: Working copy 'D:\workspace\web\..\..\images' is too old (format 10, created by Subversion 1.6

    问题:SVN同步或者提交的时候出现类似错误信息: 解决:找到对应目录,删除隐藏文件.SVN 重新提交或更新

  8. LeetCode 697. Degree of an Array (数组的度)

    Given a non-empty array of non-negative integers nums, the degree of this array is defined as the ma ...

  9. LeetCode 532. K-diff Pairs in an Array (在数组中相差k的配对)

    Given an array of integers and an integer k, you need to find the number of unique k-diff pairs in t ...

  10. TDD 之 Dojo coding

    dojo和kata的练习记录:   进入 http://cyber-dojo.org/ 由一个人进行 setup a default practice,然后创建: 这里支持各种语言和各种测试框架,这里 ...