以下脚本主要备份的日志文件为tomcat的catalina.out、localhost_access_log.yyyy-mm-dd.log日志和项目的日志文件,其中项目的日志文件格式为"projectname-yyyy-mm-dd.log",以下为备份脚本,具体的操作都有相应的注释,供大家参考,具体情况请根据日志文件的格式和要求来使用本脚本。

#!/bin/sh

######################################################################
# 日志定时运行时间为每天0点1分
# 删除20天之前的日志文件,压缩一周之前的日志文件
# 日志文件时间是根据日志名称后面的日期来计算
# 运行脚本注意日志文件中是否有其他相同后缀的非日志文件和日志文件名称是否符合要求
###################################################################### #日志文件所在目录
path=/home/tomcat/apache-tomcat-project/logs #进入日志目录
cd $path #catalina.out日志文件备份
#获取前一天的日期
bak_date=`date +%Y-%m-%d -d "1 days ago"`
#备份catalina.out日志,后面添加日期
cp catalina.out catalina.out.$bak_date.log
#清空catalina.out日志文件
echo > catalina.out #20天之前的日志文件删除
#获取20天之前的日期
del_date=`date +%Y-%m-%d -d "20 days ago"`
#获取文件名中的日期字符串,然后对比时间进行相应的操作,localhost_access_log的后缀文件名一般是txt,这里包括txt文件
for n in `ls *.log *.txt -`;do
m=`echo $n | awk -F. '{print $(NF-1)}'`
m=`echo ${m:-}`
if [ ! $m ]; then
echo "IS NULL"
continue
fi
if [[ $m < $del_date || $m = $del_date ]];then
echo file $n will be deleted.
rm -rf $n
fi
done #一周之前的文件压缩
#获取一周之前的日期
zip_date=`date +%Y-%m-%d -d "7 days ago"`
#获取文件名中的日期字符串,然后对比时间进行相应的操作
for n in `ls *.log *.txt -`;do
m=`echo $n | awk -F. '{print $(NF-1)}'`
m=`echo ${m:-}`
echo $n $m
if [ ! $m ]; then
echo "IS NULL"
continue
fi
if [[ $m < $zip_date || $m = $zip_date ]];then
echo file $n will be zip.
zip $n.zip $n
rm -rf $n
fi
done

tomcat日志文件定时清理备份的更多相关文章

  1. Centos logrotate截断tomcat日志文件

    1. 设置logrotate轮转日志文件 tomcat日志目录:/usr/local/tomcat/apache-tomcat-8.5.34/logs /etc/logrotate.d/目录下创建to ...

  2. 清除tomcat日志文件的shell脚本

    #! /bin/bash d=`date +%F` exec >> /mydata/script/logs/$d>& echo "开始执行清除tomcat日志文件& ...

  3. eclipse集成tomcat日志文件输出配置

    eclipse集成tomcat日志文件输入配置 2015-07-21 00:13 1072人阅读 评论(0) 收藏 举报  分类: tomcat(1)  eclipse Where can I vie ...

  4. 使用echo命令清空tomcat日志文件

    使用echo命令清空日志文件echo -n "" > /server/tomcat/logs/catalina.out ==>要加上"-n"参数,默 ...

  5. 定时清理tomcat日志文件

    原文链接:https://blog.csdn.net/qq_37936542/article/details/78788466 需求:最近公司服务器发现磁盘经常会被占满,查其原因是因为大量的日志文件. ...

  6. Tomcat 日志文件分割

    新到公司, 拿到了前辈们留下的 程序 “病历书” , 上面记载了项目上的一些 经常会犯的毛病,  还有相应的解决方法. 其中有的是因为后台 代码逻辑上的一些原因 , N手代码通病了吧 (这个还是以后再 ...

  7. cronolog分割tomcat日志文件

    tomcat日志备份磁盘压力解决方案,使用cronolog每日生成文件uat部署操作如下,,观察两天,下周一部署生产message系统,后续根据需求部署到其它业务线 示例方案:uat—message0 ...

  8. shell脚本切割tomcat日志文件

    转自:http://www.cnblogs.com/lishun1005/p/6054816.html 鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割to ...

  9. Tomcat日志文件catalina.out文件过大问题

    随着项目的运行,Tomcat的日志文件catalina.out的大小日益增大,现在都有好几个GB了.如果我们不做任何处理,catalina.out的文件大小将会持续增加,直到把我们的系统硬盘空间给撑爆 ...

随机推荐

  1. tar 命令详解

    tar命令[root@Linux ~]# tar [-cxtzjvfpPN] 文件与目录 -C 目标目录(注:解压时)参数:-c :建立一个压缩文件的参数指令(create 的意思):-x :解开一个 ...

  2. PHP list,explode的使用

    PHP list,explode的使用 <?php header("Content-type: text/html; charset=utf-8"); echo " ...

  3. B 最熟悉的陌生人 (纪念当年就读的梅州市江南高级中学)

    最熟悉的陌生人 作者:张慧桥 枪与玫瑰 我看了一下聊天室的名单,哈哈哈,我不禁喜出望外:蝶恋花那丫头片子挂在线上呢,真是天助我也.初时的担心一扫而光,我精神抖擞地喝下一大口咖啡,猛抽了三口烟,现在的我 ...

  4. 用户输入函数--raw_input、input

    1.raw_input python2.7用户输入字符串的话用raw_input.如果使用input输入字符串的话需要先把字符串放到变量中才可,但是用input输入数字的话是可以直接输入的,所以说在p ...

  5. Window服务安装方式汇总

    一.制作bat文件 1)Install.bat: @echo 安装服务 %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil AppS ...

  6. js运动框架完成块的宽高透明度及颜色的渐变

    了解了运动框架完成块元素的宽高和透明度的变化的原理,我想着写一个颜色的变化来练习一下,不想写了很长时间才写出来,跟各位分享一下. 颜色的变化是通过三元素渐变的方式完成的,通过构造json,使当前的颜色 ...

  7. QQ右下角浮动窗口

    <html><head><meta http-equiv="Content-Type" content="text/html; charse ...

  8. Eclipse点击工程结构里任意文件或文件夹变拖动(或复制)的bug

    本文为原创文章,欢迎转载,但请注明出处http://www.cnblogs.com/yexiubiao/p/5204601.html,未在文章页面明显位置给出原文连接的,将保留追究法律责任的权利. 在 ...

  9. oracle大表添加字段default经验分享

    当oracle单表数据量上亿时,对表进行alter table aa add column_1 varchar2(2) defalut 'Y';时,效率及安全性是必须考虑的因素. 本帖以2亿的数据表a ...

  10. Tables without a clustered index are not supported in this version of SQL Server. Please create a clustered index and try again.

    问题: Azure Sql 在插入数据是出现“Msg 40054, Level 16, State 1, Line 2  Tables without a clustered index are no ...