概述

日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。

logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志。配置完后,logrotate的运作完全自动化,不必进行任何进一步的人为干预。

因为服务器比较多,所以简单写了个shell脚本来直接配置logrotate。


logrotate配置文件说明


Logrotate的记录日志

logrotate自身的日志通常存放于/var/lib/logrotate/status目录。如果处于排障目的,我们想要logrotate记录到任何指定的文件,我们可以指定像下面这样从命令行指定。

[root@clsn6 ~]# logrotate -vf -s /var/log/logrotate-status /etc/logrotate.d/log-file

tomcat设置自动切割

对于catalina,localhost,manager,host-manager这四类日志,使用tomcat 8.5.24版本后新添加的maxDays属性进行管理。打开日志配置,将日志配置为3天后自动删除

#vim $tomcat/conf/logging.properties

1catalina.org.apache.juli.AsyncFileHandler.maxDays = 3
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 3
3manager.org.apache.juli.AsyncFileHandler.maxDays = 3
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 3

对于catalina.out标准输入输出日志,使用linux自带的logrotate进行管理。将日志配置为3天后自动删除

#vim /etc/logrotate.d/tomcat

$tomcat/logs/catalina.out {
daily #logrotate周期
rotate 3 #保存多久
missingok
notifempty #如果是空文件的话,不转储
compress
}

shell脚本配置tomcat自动切割

1、脚本内容

#!/bin/bash
#copyright by hwb --2019/7/12
tomcat=/home/tomcat8052
#配置catalina,localhost,manager,host-manager日志保留3天
cat << EOF >> $tomcat/conf/logging.properties
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 3
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 3
3manager.org.apache.juli.AsyncFileHandler.maxDays = 3
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 3
EOF
#logrotate配置3天
cat << EOF >> /etc/logrotate.d/tomcat
$tomcat/logs/catalina.out {
copytruncate
daily
rotate 3
missingok
}
EOF
echo "=======配置catalina,localhost,manager,host-manager日志保留3天========="
cat $tomcat/conf/logging.properties |grep maxDays
echo "=================logrotate配置catalina.out保留3天====================="
cat /etc/logrotate.d/tomcat

2、执行脚本

执行脚本会去配置logrotate

3、测试lorotate功能

# logrotate -d /etc/logrotate.conf

测试成功。

最新文章

  1. ECharts – 大数据时代,重新定义数据图表
  2. C/C++构建系统 -工具汇总
  3. [SAP ABAP开发技术总结]字段符号FIELD-SYMBOLS
  4. Sqli-labs less 41
  5. bzoj1079: [SCOI2008]着色方案
  6. Java--创建线程及常用方法
  7. .net I/O操作 导图
  8. 一个非常优秀的前端框架--BootStrap
  9. maven snapshot和release版本号之间的差
  10. 设计模式Template Method模式(Template Method)摘录
  11. OpenStack最新版本Folsom架构解析
  12. JAVA-Unit01: 数据库原理 、 SQL(DDL、DML)
  13. python作业设计:多级菜单,并可依次进入各级子菜单
  14. 如何创建一个一流的SDK?
  15. Day01_变量,数据类型_程序交互_流程控制
  16. cocos2dx 图片压缩工具 推荐
  17. c# datetime与 timeStamp(unix时间戳) 互相转换
  18. centos7之vm11添加网卡
  19. 一个神奇的???whatever~~
  20. MYSQL 开发总结

热门文章

  1. 靶机DC-2 rbash绕过+git提权
  2. Flutter集成高德定位和地图功能
  3. 37岁Android程序员被裁员,面试大厂被拒,降薪去小公司,心更凉了
  4. 1002 A+B for Polynomials (25分) 格式错误
  5. k8s之数据存储-配置存储
  6. OSPF的Router-Id
  7. Flutter 与 Swift - 在创建 iOS 应用程序时应该押注什么技术?
  8. Dockerfile 多阶段构建实践
  9. CGO入门和OCR文字识别(非第三方API,有源码,效果好)实战
  10. NOIP 模拟 $29\; \rm 完全背包问题$