nginx日志切割和日志定期清理
来源:互联网 发布:蓝牙音箱推荐 知乎 编辑:程序博客网 时间:2024/05/13 14:33
nginx日志默认不做人为处理,日志文件会存放在access.log,error.log两个文件中,随着时间的推移,日志量会越来越大,不方便编辑查看,为了让日志按天存放,可以做一些配置,设置一个定时任务,每天凌晨00:00开始备份昨天的日志,然后重新开启一个新的日志文件。具体实现如下:
vi /root/nginx_logback.sh
#!/bin/bashYESTERDAY=$(date -d "yesterday" +"%Y-%m-%d")LOGPATH=/usr/local/openresty/nginx/logs/PID=${LOGPATH}nginx.pidmv ${LOGPATH}access.log ${LOGPATH}access-${YESTERDAY}.logmv ${LOGPATH}error.log ${LOGPATH}error-${YESTERDAY}.logkill -USR1 `cat ${PID}`变更脚本为可执行文件,并将脚本作为定时任务启动脚本,放入crontab中。
chmod +x nginx_logback.sh
crontab -e#!/bin/bash0 0 * * * /bin/bash /root/nginx_logback.sh
日志按天存放,这样还有一个问题,经过三个月,或者更久,日志文件越来越多,这又是一个问题,所以需要对日志做定期清理,只保留一段时间内的日志。这里介绍一个开源日志清理框架Log-Cutter。log-cutter是用java语言开发的一个日志清理框架,他的文件结构如下:
配置文件很容易理解
<?xml version="1.0" encoding="UTF-8"?><CONFIGxmlns="http://www.jessma.org"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.jessma.org http://www.jessma.org/schema/log-cutter-cfg-2.0.xsd"><global><!-- 开始日志检查延时 (小时), 默认: 0 (立刻开始)1) 当指定为一个整数值时,执行器首次启动延时时间为该值设定的小时数(例如:12 小时后首次启动执行器)<start-check-delay>12</start-check-delay>2) 当指定为一个 ‘hh:mm’ 格式的值时,执行器首次启动时间为该时分值(例如:12 点 34 分首次启动执行器,如果当前时间超过 12 点 34 分则在明天的 12 点 34 分首次启动执行器)<start-check-delay>12:34</start-check-delay>--><start-check-delay>0</start-check-delay><!-- 日志检查间隔 (小时), 默认: 72 --><check-interval></check-interval><!-- Log4J 配置文件, 默认: ${CLASS_ROOT}/../conf/log4j2.xml --><log4j-config-file></log4j-config-file><!-- 进程锁文件, 默认: ${CLASS_ROOT}/../${APP_NAME}.lock --><lock-file></lock-file></global><!-- 要删除的日志文件列表(可配置多个,由 DelFileRunner 执行)1) DelFileRunner 会递归删除符合条件的文件夹及其中的所有文件2) 注意:在判断是否删除文件夹时,检测的是文件夹的最后修改时间,而不是其中文件的最后修改时间3) DelFileRunner 适用于清理 “定期产生新日志文件” 的应用程序日志--><!-- delete-files.expire: 日志文件过期时间(天), 默认: 90 --><delete-files expire="7"><!-- file.path: 文件所在目录, 必须填写, 不能包含通配符 --><!-- file: 文件或文件夹名称, 必须填写, 可包含通配符 --><file path="/usr/local/openresty/nginx/logs">*.log*</file></delete-files></CONFIG>
主要的配置就在<delete-files expire="7"></delete-files> 中,<global></global>中的配置可以忽略。这里只需要清理nginx日志,根据业务可以添加更多的清理日志。expire=7就是清理超过7天的日志,从当前日期往前推7天,7天之前的日志都会清理掉。
这里采用定时任务的方式执行,每天凌晨2:30执行一次。
执行的结果可以从Log-Cutter自己产生的日志中看。
结果可以看出就保留了7天的日志,可以从nginx日志目录中做确认。
阅读全文
0 0
- nginx日志切割和日志定期清理
- 【Nginx】日志切割和定期删除日志
- 定期切割Tomcat日志
- logrotate定期清理日志
- 定期日志清理脚本
- 定期清理服务器日志
- Shell脚本分割Nginx日志,并定期清理[不重启nginx]
- nginx日志详解和日志切割
- Shell脚本分割Nginx日志,并定期清理
- 定期清理sql2005事务日志
- Linux 定期清理日志脚本
- SQL Server2008定期清理日志
- 服务器定期清理日志文件
- 定期清理oracle审计日志
- Oracle监听日志定期清理
- 【Linux基础之简单的日志切割】nginx日志切割及清理
- Nginx 日志切割生成
- Nginx 日志文件切割
- 今天,霍金没有提AI威胁论,他的新目标是带领人类移民外星球(附霍金姚期智Pete演讲实录+PPT)
- 操作系统知识点整理(持续更新)
- Codeforces Round #291 (Div. 2) 514C Watto and Mechanism
- MNIST数据集训练以及错误 Cannot use GPU in CPU-only Caffe
- case when 嵌套
- nginx日志切割和日志定期清理
- WEB 容器、WEB服务和应用服务器的区别与联系
- jSignature手写签名插件
- android cpu使用率获取
- Solr的核心配置之操作数据库
- JVM内存模型
- 两个关键词(草稿)
- 解决retrofit2只用BaseUrl地址的问题
- OpenCV单目视觉定位(测量)系统