摘要:因为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 &