Nginx本身并不支持日志切割,那么就会造成日志非常的大,为了解决这个问题我们用到了windows的计划任务和dos命令。具体思路:
1.写一个dos文件,通过windows的计划任务定时执行(每天执行一次)
2.dos命令里面将根据日期来移动文件
3.移动前停止nginx,移动成功后启动nginx
dos命令如下:
@echo off cd D:Program Files ginx-1.14.2 taskkill /F /IM nginx.exe > nul rem date格式:Wed 11/02/2016 set today=%date:~0,4%-%date:~5,2%-%date:~8,2% set dir=D:Program Files ginx-1.14.2logsackup md "%dir%" rem access log move "D:Program Files ginx-1.14.2logsaccess.log" "%dir%access-%today%.log" start nginx pause
说明:
1.taskkill就是杀死进程
2.因为目录中存在空格,因此需要用双引号将目录引起来
3.start nginx就是启动nginx
4.%date%用于获取日期,后面的参数类似于substring(position,len)
5.@echo off表示后面的代码是一个代码块,而非一行一句,主要是因为定义了变量这些
6.pause表示暂停,这样dos窗体就不会一闪而过,我们能够清晰的看到执行结果