您现在的位置是:首页 >其他 >nginx 按天分割日志网站首页其他

nginx 按天分割日志

nicepainkiller 2025-12-29 00:01:02
简介nginx 按天分割日志

 window 平台下的 nginx 今天本来想看下他的日志的,一看 2.4GB, 这么大 打开都费劲:

 

然后nginx 本身没有提供相应的配置功能, 思路是 通过 window 自带的计任务,执行.bat 脚本来实现的

  1. 编写 bat 脚本
  2. 配置 window 的计划任务

 编写 bat 脚本:

我们的需求是:

  • 按天分割 nginx 日志
  • 文件夹汇总 美观

脚本如下:

@echo off
REM 设置命令提示符为 UTF-8 编码
chcp 65001
REM 设置Nginx 目录
set LOG_PATH=C:
ginx-1.22.1logs
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 的任务计划程序 :

  1. 创建一个基本任务
  2. 填写名称描述下一步
  3. 设置每天
  4. 设置时间
  5. 启动程序
  6. 选择我们编写.bat 的文件
  7. 配置完成后 我们可以手动运行一下;检查下对不对。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。