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)課程,成功幫助很多小伙伴找到了心儀的工作
ThinkPHP5實(shí)戰(zhàn)-仿百度糯米開發(fā)多商家電商平臺(tái)
備注:視頻合作方-慕課網(wǎng)
更多內(nèi)容請(qǐng)關(guān)注singwa官網(wǎng): singwa.cn