tomcat集群日志切割和远程备份脚本分享

笔者一共有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

时间: 2024-08-25 11:16:36

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

Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享

muke慕课实战课程分享QQ313675301 新增课程: Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式百度云实战分享 后端开发: 1.高级java软件架构师实战培训视频教程2.大型SpringMVC,Mybatis,Redis,Solr,Nginx,SSM分布式电商项目视频教程3.Spark Streaming实时流处理项目实战4.Java校招面试 Google面试官亲授5.Java开发企业级权限管理系统6.Java大牛 带你从0到上线开发企业级电商项目7.Java

Tomcat集群配置日志服务器

1 整体架构 2 中央日志服务器配置 2.1 配置时钟同步 2.1.1 方式一 中央日志服务器和Tomcat节点均向同一个时钟源(例如:pool.ntp.org)进行对时即可.说明:本小节下面命令均以root用户执行,并且在中央日志服务器和Tomcat节点均要执行. 首先,需要关闭ntpd服务: service ntpd stop chkconfig ntpd off 执行crontab -e,输入下面内容: */5 * * * * ntpdate pool.ntp.org 表示:每隔5分钟向时

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

一.目的 利用apache的mod_jk模块,实现tomcat集群服务器的负载均衡以及会话复制,这里用到了<Cluster>. 二.环境 1.基础:3台主机,系统Centos6.5,4G内存,50G硬盘. yum源已更换为阿里源(如何更换可参考博客的另外一篇文章) 2.软件:development tools,jdk-7u9-linux-x64.rpm;源码编译软件apr-util-1.5.4.tar.gz,apr-1.5.2.tar.gz,tomcat-connectors-1.2.40-s

memcached演练(3) 使用memcached搭建tomcat集群

上篇文章,已经明确了tomcat集群的必要性,主要从高可用和高并发量考虑.一般使用tomcat集群搭建,都要使用前置设一个nginx或apache作个反向代理,将请求转发给后端tomcat.使用tomcat集群,必然会引来session数据共享问题.如何解决这个问题?可借助memcached实现. 主要内容 测试单台tomcat的吞吐率 搭建apache+mod_jk+2个tomcat集群环境 搭建apache+mod_jk+2个tomcat+memcached集群环境 对比2个环境的吞吐率情况

MSM实现tomcat集群中session共享的高可用

目录 1.测试环境概述 2.MSM简介 2.1.MSM的特性 2.2.MSM要解决的问题 2.3.MSM的工作原理 3.环境搭建 3.1.memcached安装 3.2.jkd与tomcat安装配置 3.3.MSM sticky session + kryo模式的配置 3.4.MSM no-sticky session + kryo模式的配置 4.思考与总结 1.测试环境概述 采用两台linux x64主机,主机上分别安装memcached与tomcat,memcached提供key/value

从零认识tomcat,构建一机多实例tomcat集群(转)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://grass51.blog.51cto.com/4356355/1123400 1.了解tomcatTomcat不是一个完整意义上的Jave EE(j2ee)服务器,因为它没有提供完整的Java EE企业应用平台的API.但是由于Tomcat遵循apache开源协议,并且对当前Java开发框架开源组件Structs.Spring和Hibernate等实现完美支持,因此tomcat被

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

<!-- Cluster(集群,族) 节点,如果你要配置tomcat集群,则需要使用此节点. className 表示tomcat集群时,之间相互传递信息使用那个类来实现信息之间的传递. channelSendOptions可以设置为2.4.8.10,每个数字代表一种方式 2 = Channel.SEND_OPTIONS_USE_ACK(确认发送) 4 = Channel.SEND_OPTIONS_SYNCHRONIZED_ACK(同步发送) 8 = Channel.SEND_OPTIONS_A

构建一机多实例tomcat集群

1.了解tomcat Tomcat不是一个完整意义上的Jave EE(j2ee)服务器,因为它没有提供完整的Java EE企业应用平台的API.但是由于Tomcat遵循apache开源协议,并且对当前Java开发框架开源组件Structs.Spring和Hibernate等实现完美支持,因此tomcat被众多企业用来部署配置众多的Java应用程序,实现替代一些商业的Java应用服务器. 2.Tomcat的目录结构 要部署使用tomcat,则必须了解tomcat的目录结构以及各目录的作用.这里以t

(apache+tomcat集群+memcached番外篇)单台tomcat的session信息的2种持久化方式

为什么要实现搭建tomcat集群环境呢?主要因为单个tomcat无论从吞吐量和并发数上,会达到一定的极限.如果访问量超过单个tomcat的承受能力的话,tomcat一般要么拒绝提供服务,要么直接宕掉.所以,必须要依靠tomcat集群技术.举个最简单的例子,拿"送快件"比喻,如果一个人,5分钟送一件,一小时之内,送10个,一个人完全能胜任这项工作.假设现在到了双十一,要求1小时,送100个, 那怎么办?只能安排更多的人加入"送快件"这项工作中来.这其实和集群一个道理.