此方法是将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
注意:本文归作者所有,未经作者允许,不得转载