windows下nginx日志分割

简介:

在nginx根目录,创建cut-logs.bat

@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进程
tasklist /fi "imagename eq nginx.exe"
或
::taskkill /F /IM nginx.exe > nul  该行是注释

rem设置Nginx 位于的盘符
set NGINX_DRIVER=D:

rem 设置 Nginx 的主目录
::set NGINX_PATH=%NGINX_DRIVER%\nginx  该行是注释
set NGINX_PATH="%NGINX_DRIVER%\Program Files\nginx"

rem 设置 Nginx 的日志目录
set LOG_PATH=%NGINX_PATH%\logs

rem 保留30天日志
set save_days=30

rem 切换到 Nginx 所在的盘符
%NGINX_DRIVER%

rem 切换到logs所在目录
cd %LOG_PATH%

rem 移动文件
move %LOG_PATH%\access.log %LOG_PATH%\access_%y%-%m%-%d%.log
move %LOG_PATH%\error.log %LOG_PATH%\error_%y%-%m%-%d%.log

rem 进入 Nginx 的主目录
cd %NGINX_PATH%

rem向nginx 发送 reopen 信号以重新打开日志文件,功能与 Linux 平台中的 kill -USR1 一致
nginx -s reopen

rem 删除30天前日志
forfiles /p "%LOGS_PATH%" /s /m *%y%-%m%-%d%.log /d -%save_days% /c "cmd /c del @path"
echo on

注:OpenEvent("Global\ngx_reopen_5452") failed (5: Access is denied)
根据这个提示我分析了一下,应该是权限问题,这时我分别用服务启动和命令启动nginx后发现
服务启动后 nginx 是以system 身份运行的,而命令启动后 nginx 是以admin(administrator) 管理员身份运行的
这样看问题应该是出在了服务的运行身份上,所以我们应该修改服务的运行身份,具体修改方法:
服务--》nginx service--》属性--》登陆--》登陆身份--》选择此账户后账户填入admin,再填入密码
windows下nginx日志分割
windows下nginx日志分割
windows下nginx日志分割




      本文转自ling118 51CTO博客,原文链接:http://blog.51cto.com/meiling/2048314,如需转载请自行联系原作者




相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
10月前
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
726 90
|
10月前
|
数据库连接 测试技术 Windows
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题
|
缓存 安全 网络协议
使用事件日志识别常见 Windows 错误
事件查看器是Windows操作系统中的标准诊断工具,用于记录系统事件,包括硬件问题、软件中断和系统行为等详细信息。通过分析这些日志,管理员能够追踪和解决系统错误。访问方法包括使用快捷键Win + R输入eventvwr.msc,或通过控制面板进入。事件查看器中的每条记录包含事件ID、来源和描述,帮助识别和解决问题。常见错误如蓝屏死机、DLL错误、驱动程序错误等,可通过更新驱动程序、运行系统诊断、使用恢复功能等方式解决。
1025 4
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
1126 3
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。
423 2
|
应用服务中间件 Shell PHP
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
360 1
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
应用服务中间件 nginx
nginx error日志 client intended to send too large body: 1434541 bytes 如何处理?
【8月更文挑战第27天】nginx error日志 client intended to send too large body: 1434541 bytes 如何处理?
970 6
|
应用服务中间件 Linux nginx
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
|
存储 Ubuntu 应用服务中间件
如何在 Ubuntu VPS 上配置 Nginx 的日志记录和日志轮转
如何在 Ubuntu VPS 上配置 Nginx 的日志记录和日志轮转
234 4