网站首页 > 精选教程 正文
nginx日志分割防止日志过大而影响我们对日志的查看,今天给大家分享一个我在工作中作的一个windows的nginx日志分割具体步骤如下:
使用winsw来将nginx安装为服务(https://github.com/winsw/winsw)下载地址,
1. 从官网下载WinSW.NET2.exe文件,并重命名为nginx-service.exe;
2. 新建nginx-service.xml文件,并根据配置文件说明来编写配置参数。
配置文件说明
<service>
<id>nginx-1.18.0</id>
<name>Nginx Service</name>
<description>Nginx Service</description>
<executable>%BASE%\nginx.exe</executable>
<stoparguments>-s stop</stoparguments>
<logpath>%BASE%\logs\nginx-service</logpath>
<log mode="roll-by-size">
<sizeThreshold>10240</sizeThreshold>
<keepFiles>8</keepFiles>
</log>
</service>
与windows服务的对应关系如下:
其中%BASE%表示的是exe文件所在的目录,所以为了以上配置能正常生效,需要将exe文件、xml配置文件都放在nginx的根目录中
stoparguments表示停止windows服务时执行指令的参数,与executable结合起来就是:nginx.exe -s stop
log参数配置的是winsw的运行日志,一般包括安装、卸载服务、服务运行等信息,其中sizeThreshold表示日志文件的最大存储值,keepFiles表示最多保留多少个日志文件。
1. 安装服务
将nginx-service.exe以及配置好的nginx-service.xml文件拷贝到nginx根目录后,打开命令行窗口,切换到当前目录
如下,输入nginx-service.exe -h,可以看到winsw可以使用的各种指令
运行指令:nginx-service.exe install
可以将当前目录下的nginx安装为服务
运行指令:nginx-service.exe uninstall
可以卸载已安装的服务
但是nginx以服务运行后会出现一个问题,当执行nginx -s reload重新加载指令,或nginx -s stop停止指令时,会出现以下错误:
这是因为nginx服务是以“本地系统”的登录方式运行的,当前用户没有权限对它的服务进程进行操作,
为了解决这个问题,需要打开如下所示的服务“属性”弹窗,选择“登录”选项卡选择登录身份为“此账户”并选择当前登录系统的用户,输入相应的密码。
配置完成后,可以看到Nginx对应的服务已经“登录为”设置的用户了
然后重启Nginx服务,nginx的指令也可以顺利执行了
这里费劲解决这个问题,主要是因为nginx服务的重启是:停止+启动的过程,并不会像nginx -s reload一样在启动之前检查配置文件是否正确。
2. nginx日志分割
使用该脚本前,需要先修改脚本中NGINX_HOME对应的路径:
Windows 系统下使用 cmd 编写的 nginx 日志分割脚本:
cmd复制代码@echo off
set logPath=D:\nginx1.18\logs
set date=%date:~0,4%-%date:~5,2%-%date:~8,2%
set backupFolder=D:\nginx1.18\logs\backup
:: 如果备份目录不存在,则创建该目录
if not exist %backupFolder% mkdir %backupFolder%
:: 找到所有日志文件并复制到备份目录
for %%i in (%logPath%\*.log) do (
for /f "tokens=1-3 delims=." %%a in ("%%~ni") do (
if not "%%c"=="" (
if %%b==%date% (
copy "%%~fi" "%backupFolder%\%%a_%%b.%%c"
)
) else (
if %%a==access (
if %%b==%date% (
copy "%%~fi" "%backupFolder%\access_%%b.log"
)
)
)
)
)
:: 清空日志文件
for %%i in (%logPath%\*.log) do (
for /f "tokens=1-3 delims=." %%a in ("%%~ni") do (
if not "%%c"=="" (
if %%b==%date% (
>"%%~fi" type nul
)
) else (
if %%a==access (
if %%b==%date% (
>"%%~fi" type nul
)
)
)
)
)
整理不易,欢迎点赞,收藏,转发,关注我每天分享一下运维小知识。
猜你喜欢
- 2024-10-03 linux下的shell脚本编程介绍 linux shell脚本实例
- 2024-10-03 crontable 切割日志 切割日志文件
- 2024-10-03 Linux:日志轮转 linux日志轮转如何实现
- 2024-10-03 日志切割的方法 日志切割的方法是什么
- 2024-10-03 「Nginx」如何格式化日志并推送到远程服务器?看完原来很简单
- 2024-10-03 Linux下删点日志也能搞死人 linux删除几天前日志文件
- 2024-10-03 Linux日志管理工具Logrotate:自动化轮转与最佳实践
- 2024-10-03 懒人专用2:利用自动脚本切割备份不断增长的日志
- 2024-10-03 logrotate日志切割 logrotate日志切割指定应用程序
- 2024-10-03 Nginx日志管理大揭秘:logrotate工具与配置,日志按日期精准分割
你 发表评论:
欢迎- 最近发表
-
- 我的世界光影MOD下载(我的世界光影mod下载安装)
- 我的世界1.7/1.8VoxelMap小地图MOD下载
- 我的世界1.7.10多世界 整合包(我的世界1.7.10forge整合包)
- 我的世界1.8最好用的修改器下载(我的世界1.8最好用的修改器下载安装)
- 我的世界更多弯曲动作MOD下载(我的世界更多弯曲动作mod下载手机版)
- 我的世界龙珠MOD下载(我的世界龙珠模组整合包下载)
- 我的世界1.7.10以太2 下载(我的世界以太2mod1.12.2)
- 我的世界虚拟人生MOD下载分享(我的世界虚拟人生下载安装)
- 我的世界无正版账号的简单联机方法(非网易版,仅适用于局域网)
- “我的语言极限,即是我的世界的极限。” ——《On Java》书籍推荐
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)