【Nginx】如何按日期分割Nginx日誌?看這一篇就夠了!!

寫在前面

Nginx是沒有以日期格式做爲文件名來存儲的,也就是說,Nginx不像Tomcat,天天自動生成一個日誌文件,全部的日誌都是以一個名字來存儲,時間久了日誌文件會變得很大。這樣很是不利於分析。雖然nginx沒有這個功能但咱們能夠寫一個小腳本配合計劃任務來達到這樣的效果。即讓Nginx天天產生一個日誌文件,方便咱們進行後續的數據分析。nginx

分割Nginx日誌

首先,咱們要建立一個腳本文件,用來分割Nginx日誌,具體腳本以下:vim

vim /usr/local/nginx-1.19.1/cutnginxlog.sh
複製代碼

腳本內容以下:bash

#!/bin/sh
# Program:
# Auto cut nginx log script.
 
# nginx日誌路徑 
LOGS_PATH=/usr/local/nginx-1.19.1/logs
TODAY=$(date -d 'today' +%Y-%m-%d)
 
# 移動日誌並更名
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${TODAY}.log
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${TODAY}.log
 
# 向nginx主進程發送從新打開日誌文件的信號
kill -USR1 $(cat /usr/local/nginx-1.19.1/logs/nginx.pid)
複製代碼

接下來就是給cutnginxlog.sh文件受權。微信

chmod a+x cutnginxlog.sh
複製代碼

接下來添加計劃任務,定時執行cutnginxlog.sh腳本,以root用戶執行以下命令:併發

echo '59 23 * * * root /usr/local/nginx-1.19.1/cutnginxlog.sh >> /usr/local/nginx-1.19.1/cutnginxlog.log 2>&1' >> /etc/crontab
複製代碼

意思就是在天天的23點59分執行腳本。將自動任務的執行日誌(錯誤和正確的日誌)自動寫入cutnginxlog.log,「命令 >> 2>&1」 表示以追加方式將正確輸出和錯誤輸出都保存到同一個文件中。分佈式

好了,今天就聊到這兒吧!別忘了點個贊,給個在看和轉發,讓更多的人看到,一塊兒學習,一塊兒進步!!微服務

寫在最後

若是你以爲冰河寫的還不錯,請微信搜索並關注「 冰河技術 」微信公衆號,跟冰河學習高併發、分佈式、微服務、大數據、互聯網和雲原生技術,「 冰河技術 」微信公衆號更新了大量技術專題,每一篇技術文章乾貨滿滿!很多讀者已經經過閱讀「 冰河技術 」微信公衆號文章,成功跳槽到大廠;也有很多讀者實現了技術上的飛躍,成爲公司的技術骨幹!若是你也想像他們同樣提高本身的能力,實現技術能力的飛躍,進大廠,升職加薪,那就關注「 冰河技術 」微信公衆號吧,天天更新超硬核技術乾貨,讓你對如何提高技術能力再也不迷茫!高併發

相關文章
相關標籤/搜索