Nginx大多是在Linus环境下使用,网上Nginx的日志切分基本都是在Linus环境下通过sheet脚本执行。
最近由于业务需要windows环境下运行Nginx,要做日志分割。但是在网上找了一圈,大多是需要借助UnxUtils这个工具来获取前一天的时间。其实在windows环境下,可以用vb脚本(VB Script)来实现获取前一天时间的功能。
1. 关闭Ngins:
nginx -s stop
注意:命令要在cmd.exe(win+R,输入cmd,回车)执行,并定位到Nginx安装目录
2. 在Nginx安装目录下创建一个文件夹datalogs,用来存放备份的Nginx日志
3. 在Nginx安装目录下创建一个文件demo.bat,写入一下vb脚本
@echo off
rem @echo off
rem 取1天之前的日期
echo wscript.echo dateadd("d",-1,date) >%tmp%\tmp.vbs
for /f "tokens=1,2,3* delims=/" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set y=%%i
for /f "tokens=1,2,3* delims=/" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set m=%%j
for /f "tokens=1,2,3* delims=/" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set d=%%k
if %m% LSS 9 set m=0%m%
if %d% LSS 9 set d=0%d%
echo %y%-%m%-%d%
rem 设置 Nginx 位于的盘符
set NGINX_DRIVER=D:
rem 设置 Nginx 的主目录
set NGINX_PATH=%NGINX_DRIVER%\nginx-1.16.1
rem 设置 Nginx 的日志目录
set LOG_PATH=%NGINX_PATH%\logs
rem 移动文件
move %LOG_PATH%\access.log %NGINX_PATH%\datalogs\access_%y%-%m%-%d%.log
move %LOG_PATH%\error.log %NGINX_PATH%\datalogs\error_%y%-%m%-%d%.log
rem 切换到 Nginx 所在的盘符
%NGINX_DRIVER%
rem 进入 Nginx 的主目录
cd %NGINX_PATH%
rem 向 nginx 发送 reopen 信号以重新打开日志文件,功能与 Linux 平台中的 kill -USR1 一致
nginx -s reopen
echo on
注意:在vb脚本中,rem代表注释
4. 把上述vb脚本demo.bat按照以下步骤添加到windows任务计划中
(1)此电脑-->右键点击“管理”-->进入计算机管理页面-->点击“任务计划程序”下拉的“任务计划程序库”-->点击“创建基本任务”;
(2)在弹出的页面上按向导如下图所示一步步填写,然后点击完成,中间的列表就会显示新加入的任务计划
(3)我们可以通过点击其右侧其属性来修改其基本信息,如下图所示:
1)常规:可以修改其“安全选项” 等;
2)触发器:可以新建、编辑、和删除;
编辑时,可修改其高级配置,比如要实现每分钟执行,可勾选“重复任务间隔”,其值在选择后可手动修改!!
3)操作:可以新建,实现多任务操作,可以编辑、删除。
5. 启动Nginx
start nginx
传送门:
Win10环境下载安装Nginx:https://my.oschina.net/u/3986411/blog/4270553
来源:oschina
链接:https://my.oschina.net/u/3986411/blog/4272079