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

guiyun affiliate

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


image.png












image.png

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

guiyun affiliate

标签: shell

作者头像
南宫俊逸创始人

君子好学,自强不息~

上一篇:MAC OS苹果系统密码破解方法
下一篇:widows 10 "自动修复" 无法修复你的电脑

发表评论