此方法是将nginx停止,然后移动并重命名文件的方式来实现日志切割。假如没有将nginx停止,就算重命名或移动文件,nginx还是会向原文件写内容,太奇怪了。不知道有没有其他方法来实现nginx日志切割。
1、将nginx以服务方式启动;
2、新建nginxSplitLog.bat文件,具体内容如下(rem为注释符号,我的nginx日志目录为D:nginxlogs,日志备份目录为D:nginxlogslogbak)
@ECHO OFF
rem 停止nginx服务
net stop nginx
rem 杀掉nginx进程,因为一个服务可能启动多个nginx进程
taskkill /F /IM nginx.exe
rem 产生移动日志文件命令
set "cmdstr=move D:nginxlogsaccess.log D:nginxlogslogbakaccess%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文件
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。