当前位置: 首页 > 编程笔记 >

Tomcat日志文件定时清理备份的脚本

江宏伟
2023-03-14
本文向大家介绍Tomcat日志文件定时清理备份的脚本,包括了Tomcat日志文件定时清理备份的脚本的使用技巧和注意事项,需要的朋友参考一下

以下脚本主要备份的日志文件为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 -1`;do
m=`echo $n | awk -F. '{print $(NF-1)}'`
m=`echo ${m:0-10}`
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 -1`;do
m=`echo $n | awk -F. '{print $(NF-1)}'`
m=`echo ${m:0-10}`
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日志文件定时清理备份的脚本,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 我会很感激任何关于在哪里搜索这些文件的提示。

  • 我使用log4j2来记录我的程序。在我的xml配置文件中,我有这个附件: 我需要的是一种配置它的方法,这样它就会自动删除所有超过n天的文件。 我已经找到了一些这样的问题,但是它们没有帮助,因为它们没有说如何通过xml配置来完成它。 要使简短地说,我应该在上面的片段中指示像“MaxBackupIndex”这样的参数吗?或者我应该使用哪个其他参数(我可以把它放在哪里)?

  • 本文向大家介绍Shell脚本自动备份MySQL到FTP并定期清理过期备份,包括了Shell脚本自动备份MySQL到FTP并定期清理过期备份的使用技巧和注意事项,需要的朋友参考一下 以前公司用的一个网上找的MySQL自动备份到FTP的Shell脚本,一直用着不错。但是问题就是随着备份文件的越来越多,不得不定期清理FTP上的老备份文件,十分的不便。 实际上MySQL备份无需保留太长时间的,如果能有自动

  • 我有一个要求,其中写入日志文件的日志条目需要具有特定格式。 例如: 2016-01-28 21:42:48,399 INFO field d1: value e1;字段2: value e2;字段3: value e3;字段4: value e4 我们正在使用日志返回进行日志记录。字段的值存储在 java 对象中。有关如何使用自定义附加器/布局或任何其他方法实现这一点的任何建议或指针都将有很大的帮

  • 我的WAR正在使用一个log4j FileAppender,该文件是通过WAR中的目录下的文件配置的。 我已将log4j追加器配置为: 通过此配置,我将尝试实现以下功能: 将记录调试级别和更高级别的所有日志消息(因此所有) 我希望文件位于Tomcat的目录下 这种配置是否实现了这些项,如果没有,需要更改什么?

  • 我使用的是log4j2。在两个应用程序中使用xml,并且两者都可以登录相同的信息。日志应用程序A和B中提到的日志文件大小为100KB。当信息。日志信息超过100KB。日志创建1个备份文件。当应用程序B尝试登录时,日志会被写入信息中。日志1而不是信息。日志当我重新启动应用程序B时,日志将获得登录信息。日志为什么会观察到这种奇怪的日志记录方式?解决方法是什么。下面是log4j2。应用程序B的xml