Linux nginx日志按天分割實例
nginx的日志有個小缺點,日志文件一直就是一個,不會自動地進行切割,如果訪問量很大的話,將導致日志文件非常大,不便於管理
這就需要我們自己來實現了,按日期每天生產一個日志文件
思路
每天零點把默認日志文件改名為當天日期,再重新打開新的日志文件
使用定時任務來執行腳本,腳本中執行改名和重新打開日志文件的操作
向Nginx主進程發送 USR1 信號,就可以重新打開日志文件
實現
#/bin/bash
#備份日志的路徑
bakpath='/home/nginx/logs'
#nginx日志路徑
logpath='/usr/local/nginx/logs'
#在備份路徑下創建年月子目錄
mkdir -p $bakpath/$(date +%Y)/$(date +%m)
#移動日志文件到備份路徑,並改名為日期格式
mv $logpath/access.log $bakpath/$(date +%Y)/$(date +%m)/access.$(date +%Y%m%d).log
mv $logpath/error.log $bakpath/$(date +%Y)/$(date +%m)/error.$(date +%Y%m%d).log
#用 USR1 信號讓nginx重新打開日志文件
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`