標(biāo)簽:
服務(wù)器由于訪問(wèn)日志文件增長(zhǎng)速度很快,日志太大會(huì)影響服務(wù)器效率。為了方便對(duì)日志進(jìn)行分析計(jì)算,須要對(duì)日志文件進(jìn)行定時(shí)切割。定時(shí)切割的方式分為按月切割、按天切割、按小時(shí)切割等。最常用的是按天切割。Nginx不支持像—樣使用日志,但是可以采用以下方式來(lái)實(shí)現(xiàn)日志文件的切割:
mv/datal/logs/access.Iog/datal/logs/20090318.Iogkill-USRlNginxii4^^
首先通過(guò)mv命令將日志文件重命名為/4細(xì)1爪職/20090318.1(^,然后發(fā)送kill-USRl信號(hào)給Nginx的主進(jìn)程號(hào),讓Nginx重新生成一個(gè)新的日志文件/datalAogWaccess.log。如果nginx.conf配置文件中使用了“pid/usr^ocaVwebserver/nginj^nginx.pid;”指令,指定了口丨(1文件的存放路徑,我們可以通過(guò)cat這個(gè)pid文件獲得Nginx的主進(jìn)程號(hào),命令如下:
kill-USRl’cat/usr/local/webserver/nginx/nginx.pid’
如果想每天定時(shí)切割日志,還須要借助宿遷波仔可以寫(xiě)一個(gè)按天切割的日志,按年、月份目錄存放日志的shell腳本:
vi/usr/local/webserver/nginx/sbin/cut_jiginx_logsh輸入以下內(nèi)容并保存(見(jiàn)代碼3-9):
代碼3-9
#!/bin/bash
#這個(gè)腳本須在每天的00:00運(yùn)行
#Nginx日志文件的存放路徑logs__path=_/datal/logs/”
mkdir-p${logs_path}$(date-d”yesterday”+”%Y”)/$(date-d”yesterday”+”%m”)/mv${logs_path)access.Iog${logs_path)$(date-d”yesterday”+”%Y”)/$(date-d”yesterday”+”%m1*)/access_$(date-d”yesterday”+*%Y%m%d”).Iogkill-USRl’cat/usr/local/webserver/nginx/nginx.pid’
另外,配置訂0故31)每天凌晨00:00定時(shí)執(zhí)行這個(gè)腳本:crontab-e輸入以下內(nèi)容并保存:
0000***/bin/bash/usr/local/webserver/nginx/sbin/cut_nginx_log.sh
這個(gè)81^11腳本和以0加31)配置主要實(shí)現(xiàn)的功能為:假設(shè)今天的日期為2009年5月19S,Nginx當(dāng)前的日志文件為/datal/logs/access.log,2009年5月20日00:00會(huì)執(zhí)行cut_nginx_log.sh腳本,cut_nginx_log.sh腳本首先創(chuàng)建一個(gè)目錄/63131乃(^/2009/05/,然后將/dataldogs/access.log文件移動(dòng)并重命名為化3131/1088/2009/05/3^88_20090519.1(^,再發(fā)送kill-USRl信號(hào)給Nginx主進(jìn)程號(hào),告訴Nginx重新生成一個(gè)/datal/logs/access.log文件,2009年5月20日的日志記錄在這個(gè)新生成的日志文件中。而化3131瓜^/2009/05/3^88_20090519.108文件,就是2009年5月19日的日志文件。
|