此方法是将nginx停止,然后移动并重命名文件的方式来实现日志切割。假如没有将nginx停止,就算重命名或移动文件,nginx还是会向原文件写内容,太奇怪了。不知道有没有其他方法来实现nginx日志切割。

1、将nginx以服务方式启动;

2、新建nginxSplitLog.bat文件,具体内容如下(rem为注释符号,我的nginx日志目录为D:\nginx\logs,日志备份目录为D:\nginx\logs\logbak\)

@ECHO OFF
rem 停止nginx服务
net stop nginx
 
rem 杀掉nginx进程,因为一个服务可能启动多个nginx进程
taskkill /F /IM nginx.exe
 
rem 产生移动日志文件命令
set "cmdstr=move D:\nginx\logs\access.log D:\nginx\logs\logbak\access%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%.log"
 
rem 移动日志文件
call %cmdstr%"
 
rem 启动nginx服务
net start nginx

3、在windows计划任务里新建一个计划任务,每天晚上定时执行nginxSplitLog.bat文件


以上内容转至:http://blog.sina.com.cn/s/blog_5cef6d430100evz1.html


注意:本文归作者所有,未经作者允许,不得转载