nginx中access日志如何做到按時(shí)間完美切割

nginx web服務(wù)器中access日志,默認(rèn)是不能按時(shí)間分隔的,每次日志都是打在access.log上,這樣久而久之這個(gè)日志文件就特別的大,也不利于清理和管理,故此我們肯定是需要做時(shí)間上的切割的,那么如何做到完美的切割的呢?

我們采取的方案是利用shell腳本和crontab定時(shí)任務(wù)來做

比如新建一個(gè)nginx_time_log.sh腳本,里面的內(nèi)容如下

#!/bin/bash

local_path=/home/work/tp/log/webserver ? ?#找到您服務(wù)器中存放access日志的目錄

cd $local_path ?#進(jìn)入這個(gè)目錄

#echo access_log $local_path/access_log` date +%Y%m%d%H` ? #測(cè)試下路徑是否正常

mv access_log $local_path/access_log` date +%Y%m%d%H` ?#把當(dāng)前的access_log挪到這個(gè)時(shí)期下,其實(shí)就是相當(dāng)于日志的切分

nginx_pid=`ps -ef |grep -v grep |grep “nginx: master process “|awk -F” ” ‘{print $2}’` ?#找到您nginx的進(jìn)程

` kill -USR1 $nginx_pid` ?#執(zhí)行usr1

這樣就會(huì)先把a(bǔ)ccess_log 移動(dòng)到一個(gè)access_log.時(shí)間 ?的日志文件,并且會(huì)新生產(chǎn)一個(gè)access_log文件

最后通過定時(shí)任務(wù)來讓這個(gè)nginx_time.sh腳本按每小時(shí)來進(jìn)行切分

crontab命令如下:

0 */1 * * * ? sh ? /xxx(您這個(gè)腳本的存放命令)/nginx.sh

日志圖如下:

之前singwa做過2套實(shí)戰(zhàn)課程,成功幫助很多小伙伴找到了心儀的工作

前端到后臺(tái)ThinkPHP開發(fā)整站

ThinkPHP5實(shí)戰(zhàn)-仿百度糯米開發(fā)多商家電商平臺(tái)

備注:視頻合作方-慕課網(wǎng)

更多內(nèi)容請(qǐng)關(guān)注singwa官網(wǎng): singwa.cn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容