window 平台下的 nginx 今天本来想看下他的日志的,一看 2.4GB, 这么大 打开都费劲:
然后nginx 本身没有提供相应的配置功能, 思路是 通过 window 自带的计任务,执行.bat 脚本来实现的:
- 编写 bat 脚本
- 配置 window 的计划任务
编写 bat 脚本:
我们的需求是:
- 按天分割 nginx 日志
- 文件夹汇总 美观
脚本如下:
@echo off REM 设置命令提示符为 UTF-8 编码 chcp 65001 REM 设置Nginx 目录 set LOG_PATH=C:\nginx-1.22.1\logs REM 设置Nginx 日志目录 set DIR_BASE=Nginx日志备份 REM 获取当前日期和时间,格式为 YYYYMMDD for /f "tokens=2 delims==" %%I in ('wmic OS Get localdatetime /value') do set datetime=%%I set DATE=%datetime:~0,4%%datetime:~4,2%%datetime:~6,2% REM 设置备份文件夹名称 set DIR_PATH=%LOG_PATH%\%DIR_BASE%%DATE% :: echo "DATE %DATE%" :: "LOG_PATH %LOG_PATH%" :: "Folder created at %DIR_PATH%" :: pause REM 创建目标文件夹(如果不存在) IF NOT EXIST "%DIR_PATH%" ( mkdir "%DIR_PATH%" echo "Folder created at %DIR_PATH%" ) ELSE ( echo "Folder already exists at %DIR_PATH%" ) REM 剪切access.log 文件到指定目录 IF EXIST "%LOG_PATH%\access.log" ( move "%LOG_PATH%\access.log" "%DIR_PATH%\access.log" echo accessLog File moved successfully. ) ELSE ( echo accessLog Source file does not exist. ) REM 剪切error.log 文件到指定目录 IF EXIST "%LOG_PATH%\error.log" ( move "%LOG_PATH%\error.log" "%DIR_PATH%\error.log" echo errorLog File moved successfully. ) ELSE ( echo errorLog Source file does not exist. ) REM 创建新的日志文件 copy NUL "%LOG_PATH%\access.log" >nul copy NUL "%LOG_PATH%\error.log" >nul echo Nginx 日志分割完成
配置 window 的计划任务
打开 window 的任务计划程序 :
- 创建一个基本任务
- 填写名称描述下一步
- 设置每天
- 设置时间
- 启动程序
- 选择我们编写.bat 的文件
- 配置完成后 我们可以手动运行一下;检查下对不对。