Nginx没有类似Apache的cronolog日志分割处理的功能,但是,可以通过nginxNginx的信号控制功能利用脚本来实现日志的自动切割。请看下面的一个实例。
Nginx对日志进行处理的脚本:
/bin/bash
savepath_log=’/home/nginx/logs’
nglogs=’/opt/nginx/logs’
mkdir -p
savepathlog/
(date +%Y)/
(date+mv
nglogs/access.log
savepathlog/
(date +%Y)/
(date+
(date +%Y%m%d).log
mv
nglogs/error.log
savepath_log/
(date+
(date +%m)/error.$(date +%Y%m%d).log
kill -USR1 cat /opt/nginx/logs/nginx.pid
将这段脚本保存后加入到Linux的crontab守护进程,让此脚本在每天凌晨0点执行,就可以实现日志的每天分割功能了。
其中,变量savepath_log指定分割后的日志存放的路径,而变量nglogs指定Nginx日志文件的存放路径。最后一行,通过Nginx的信号“USR1”实现了日志的自动切换功能。