/ 中存储网

Nginx服务器日志文件切割脚本

2013-09-24 17:39:01 来源:IT技术网

Nginx没有类似Apache的cronolog日志分割处理的功能,但是,可以通过Nginx的信号控制功能的脚本来实现日志的自动切割。请看下面的一个实例。

#!/bin/bash

savepath_log='/home/nginx/logs'

nglogs='/usr/local/nginx/logs'

mkdir -p $savepath_log/$(date +%Y)/$(date +%m)

mv $nglogs/access.log $savepath_log/$(date +%Y)/$(date +%m)/access.$(date +%Y%m%d).log

mv $nglogs/error.log $savepath_log/$(date +%Y)/$(date +%m)/error.$(date +%Y%m%d).log

kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

将这段脚本保存后加入到linux的crontab守护进程,让此脚本在每天凌晨0点执行,就可以实现日志的每天分割功能了。

其中,变量savepath_log指定分割后的日志存放路径,而变量nglogs指定Nginx日志文件的存放路径。最后一行,通过Nginx的信号"USR1"实现了日志的自动切换功能。