一个专业运
维技术分享!

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

1.Nginx日志基本配置说明

声明日志格式:
access_log      logs/access.log     main;
声明log       log位置           log格式;
定义日志格式(以下为常用的日志格式 可各自按需调整格式):
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
Nginx日志的作用域可以为http server location 日志级别location>server>http

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

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

2.Nginx日志按天切割
编写Shell脚本splitLog.sh(记住为splitLog.sh添加可执行权限):

#!/bin/bash
#此脚本用于自动分割Nginx的日志,包括access.log和error.log
#每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-xx-xx.log格式,并重新打开日志文件
#Nginx日志文件所在目录
LOG_PATH=/home/wwwlogs/
#获取昨天的日期
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
#获取pid文件路径
PID=/usr/local/nginx/logs/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 /Server/Scripts/Nginx/splitLog.sh

3.添加Linux定时任务

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

crontab -e
# 输入以下内容并保存
00 00 * * * /bin/bash /Server/Scripts/Nginx/splitLog.sh 

重启Linux定时任务

# systemctl restart crond
赞(3) 打赏
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。小柳实验室 » Nginx日志按日期切割详解(按天切割)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏