欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Nginx日志按日期切割详解(按天切割)

程序员文章站 2022-05-24 18:38:14
实现需求 本文实现的功能是在吗每天凌晨00:00把前一天的nginx日志access.log重命名为access-xxxx-xx-xx.log格式,例如:access...

实现需求

本文实现的功能是在吗每天凌晨00:00把前一天的nginx日志access.log重命名为access-xxxx-xx-xx.log格式,例如:access-2016-10-01.log,下面话不多说了,来看看详细的实现方法吧。

实现方法

脚本

vim /opt/nginx/cut_nginx_log.sh
#!/bin/bash
#此脚本用于自动分割nginx的日志,包括access.log和error.log
#每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-xx-xx.log格式,并重新打开日志文件
#nginx日志文件所在目录
log_path=/opt/nginx/logs
#获取昨天的日期
yesterday=$(date -d "yesterday" +%y-%m-%d)
#获取pid文件路径
pid=/var/run/nginx/nginx.pid
#分割日志
mv ${log_path}access.log ${log_path}access-${yesterday}.log
mv ${log_path}error.log ${log_path}error-${yesterday}.log
#向nginx主进程发送usr1信号,重新打开日志文件
kill -usr1 `cat ${pid}`
chmod +x /opt/nginx/cut_nginx_log.sh

定时任务

配置crontab每天凌晨00:00定时执行这个脚本

crontab -e
# 输入以下内容并保存
00 00 * * * /bin/bash /opt/nginx/sbin/cut_nginx_log.sh

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。