摘要:由于nginx的日志本身只是支持按照server_name或者大小进行划分,所以对于有的站长,要对应的网站一天一个日志分析就不方便,固有了分割nginx日志的需求。 实现原理: 实现步骤: 一.
摘要:由于nginx的日志本身只是支持按照server_name或者大小进行划分,所以对于有的站长,要对应的网站一天一个日志分析就不方便,固有了分割nginx日志的需求。
实现原理:
实现步骤:
一.从一台已经安装好apache的机器上的apache bin目录下把rotatelogs拷贝到nginx服务器的/usr/local/nginx/logs/下:
1. cp rotatelogs /usr/local/nginx/logs
2. chmod +x /usr/local/nginx/logs/rotatelogs
二.创建有名管道:
1. mkdir /usr/local/nginx/logs/xiazai/
2. mkfifo /usr/local/nginx/logs/xiazai/access_log
三.在nginx配置文件server中加上:
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 &