Windows环境下 Nginx 日志分割

Posted by Sir0xb on 2011-12-30 10:12:05 +0800

思路:每次关闭时,讲日志文件改名成日期时间相关的文件即可。因为 Nginx 启动时会自动生成日志文件。

bat代码如下:

cls
@ECHO OFF
SET NGINX_PATH=C:
SET NGINX_DIR=C:\nginx-1.1.5\
color 0a
TITLE Nginx管理程序
GOTO MENU
:MENU
CLS
ECHO.
ECHO. * * * *  Nginx Management  * * *
ECHO. *                                *
ECHO. *   1 启动Nginx                  *
ECHO. *                                *
ECHO. *   2 关闭Nginx                  *
ECHO. *                                *
ECHO. *   3 重启Nginx                  *
ECHO. *                                *
ECHO. *   4 检查配置                   *
ECHO. *                                *
ECHO. *   5 退 出                      *
ECHO. *                                *
ECHO. * * * * * * * * * * * * * * * * *
ECHO.
ECHO.请输入命令编号:
set /p ID=
IF "%id%"=="1" GOTO cmd1
IF "%id%"=="2" GOTO cmd2
IF "%id%"=="3" GOTO cmd3
IF "%id%"=="4" GOTO cmd4
IF "%id%"=="5" EXIT
PAUSE
 
:cmd1
REM ------------- 启动PHP -------------
@ECHO OFF
SET PHP_FCGI_MAX_REQUESTS=1000
ECHO.启动PHP FastCGI...
%NGINX_PATH%
CD %NGINX_DIR%
RunHiddenConsole %NGINX_DIR%/php-5.3.8/php-cgi.exe -b 127.0.0.1:9000 -c %NGINX_DIR%/php-5.3.8/php.ini
 
REM ------------- 启动Nginx -------------
ECHO.启动Nginx......
%NGINX_PATH%
CD %NGINX_DIR%
IF NOT EXIST %NGINX_DIR%nginx.exe ECHO %NGINX_DIR%nginx.exe不存在
%NGINX_PATH%
CD %NGINX_DIR%
IF EXIST %NGINX_DIR% start %NGINX_DIR%nginx.exe
ECHO.OK
PAUSE
GOTO MENU
 
:cmd2
ECHO.
REM ------------- 日志文件改名 -------------
SET T1=%DATE:~0,4%.%DATE:~5,2%.%DATE:~8,2%.%time:~0,2%.%time:~3,2%.%time:~6,2%
SET T2=%T1: =0%
%NGINX_PATH%
CD %NGINX_DIR%
IF NOT EXIST %NGINX_DIR%logs\%T2%_ACCESS.log ren %NGINX_DIR%logs\access.log %T2%_ACCESS.log
%NGINX_PATH%
CD %NGINX_DIR%
IF NOT EXIST %NGINX_DIR%logs\%T2%_ERROR.log ren %NGINX_DIR%logs\error.log %T2%_ERROR.log
 
REM ------------- 关闭Nginx -------------
ECHO.关闭Nginx......
%NGINX_PATH%
CD %NGINX_DIR%
taskkill /F /IM nginx.exe > nul
REM ------------- 关闭PHP -------------
ECHO.关闭 PHP FastCGI...
%NGINX_PATH%
CD %NGINX_DIR%
taskkill /F /IM php-cgi.exe > nul
ECHO.OK
PAUSE
GOTO MENU
 
:cmd3
ECHO.
REM ------------- 关闭Nginx -------------
ECHO.关闭Nginx......
%NGINX_PATH%
CD %NGINX_DIR%
taskkill /F /IM nginx.exe > nul
REM ------------- 关闭PHP -------------
ECHO.关闭PHP FastCGI...
%NGINX_PATH%
CD %NGINX_DIR%
taskkill /F /IM php-cgi.exe > nul
ECHO.OK
GOTO cmd1
GOTO MENU
 
:cmd4
ECHO.
REM ------------- 检查Nginx配置 -------------
ECHO.检查Nginx配置......
%NGINX_PATH%
CD %NGINX_DIR%
IF NOT EXIST %NGINX_DIR%nginx.exe ECHO %NGINX_DIR%nginx.exe不存在
%NGINX_PATH%
CD %NGINX_DIR%
IF EXIST %NGINX_DIR% %NGINX_DIR%nginx.exe -t
ECHO.完成检查
PAUSE
GOTO MENU

运行效果如下:

重新启动 Nginx 后: