windows下nginx日志分割
2017-12-07 14:09
288 查看
在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日志分割
- windows nginx 配置问题处理及日志分割处理
- Windows下nginx定时分割日志
- nginx/Windows-1.9.0的日志分割
- windows 下分割nginx日志
- Windows下Nginx日志分割
- Windows下nginx定时分割日志
- nginx日志分割
- Nginx设置日志分割方法
- 利用cronolog对nginx日志进行分割
- Apache中按天分割日志(Windows)
- shell 脚本nginx日志分割
- logrotate管理分割nginx日志无效
- centos中nginx按日期自动分割访问日志
- Nginx之——日志按日期分割的实现(基于CentOS操作系统)
- windows平台上的PHP运行在IIS,Apache,Nginx的性能和速度测试日志
- nginx 按天分割日志
- Nginx日志配置及分割