摘要:因爲nginx的日誌自己只是支持按照server_name或者大小進行劃分,因此對於有的站長,要對應的網站一天一個日誌分析就不方便,固有了分割nginx日誌的需求。nginx
實現原理:apache
實現步驟:服務器
一.從一臺已經安裝好apache的機器上的apache bin目錄下把rotatelogs拷貝到nginx服務器的/usr/local/nginx/logs/下:網站
1. cp rotatelogs /usr/local/nginx/logsspa
2. chmod +x /usr/local/nginx/logs/rotatelogs日誌
二.建立有名管道:server
1. mkdir /usr/local/nginx/logs/xiazai/原理
2. mkfifo /usr/local/nginx/logs/xiazai/access_log配置
三.在nginx配置文件server中加上:date
1. access_log /usr/local/nginx/logs/xiazai/access_log ;
四.建立日誌存儲目錄:
1. mkdir /usr/local/nginx/logs/xiazai/log
五.建立日誌分割腳本:
[root@nginx-71 xiazai]# cat /usr/local/nginx/logs/xiazai/rotate.sh
baselogdir=/usr/local/nginx/logs/xiazai
rotatelogs=/usr/local/nginx/logs/rotatelogs
while [ 1 ]
do
echo `date +"%F %T"`" rotatelogs access start"
$rotatelogs $baselogdir/log/access_%Y%m%d.log 86400 480 < $baselogdir/access_log
echo `date +"%F %T"`" rotatelogs access stop"
sleep 1;
done
六.建立啓動日誌分割腳本:
[root@nginx-71 xiazai]# cat /usr/local/nginx/logs/xiazai/run.sh sh /usr/local/nginx/logs/xiazai/rotate.sh >> /usr/local/nginx/logs/xiazai/log/access-rotate.log 2>&1 &