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


由於nginx的日志本身只是支持按照server_name或者大小進行划分,對於習慣了apache的按照一個網站每天一個日志的我來說是不可以接受的,所以就實現了按天切割的功能,這篇文章主要介紹了關於Nginx日志按日期切割的相關資料,需要的朋友可以參考下。

實現需求

本文實現的功能是在嗎每天凌晨00:00把前一天的Nginx日志access.log重命名為access-xxxx-xx-xx.log格式,例如:access-2016-10-01.log,下面話不多說了,來看看詳細的實現方法吧。

實現方法

腳本

1
vim /usr/local/nginx/logs/cut_nginx_log.sh

 

 

#!/bin/bash
set -u
#開始時間2020-06-22
#order by : wanghz
#此腳本用於自動分割Nginx的日志,包括access.log和error.log
#每天00:00執行此腳本 將前一天的access.log重命名為access-xxxx-xx-xx.log格式,並重新打開日志文件
#Nginx日志文件所在目錄
logPath=/usr/local/nginx/logs/
#獲取昨天的日期
yesterDay=$(date -d "yesterday" +%Y-%m-%d)
##獲取pid文件路徑
PID=/usr/local/nginx/logs/nginx.pid
#分割日志
mv ${logPath}access.log ${logPath}access-${yesterDay}.log
mv ${logPath}error.log ${logPath}error-${yesterDay}.log
#向Nginx主進程發送USR1信號,重新打開日志文件
kill -USR1 `cat ${PID}`

1
chmod 755   /usr/local/nginx/logs/cut_nginx_log .sh

定時任務

配置crontab每天凌晨00:00定時執行這個腳本

1
2
3
/etc/crontab
# 輸入以下內容並保存
01 00 * * *  /usr/local/nginx/logs/cut_nginx_log .sh


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM