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

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

我們采取的方案是利用shell腳本和crontab定時任務來做

比如新建一個nginx_time_log.sh腳本,里面的內容如下

#!/bin/bash

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

cd $local_path ?#進入這個目錄

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

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

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

` kill -USR1 $nginx_pid` ?#執行usr1

這樣就會先把access_log 移動到一個access_log.時間 ?的日志文件,并且會新生產一個access_log文件

最后通過定時任務來讓這個nginx_time.sh腳本按每小時來進行切分

crontab命令如下:

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

日志圖如下:

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

前端到后臺ThinkPHP開發整站

ThinkPHP5實戰-仿百度糯米開發多商家電商平臺

備注:視頻合作方-慕課網

更多內容請關注singwa官網: singwa.cn

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容