Windows下 Nginx日志文件按计划时间自动分割、手动备份
使用说明:
为限制 Nginx日志文件大小增加,文件过大,导致无法收缩日志,在配置好的nginx的安装目录下,可以采用批处理文件对日志,根据实际需要的时间进行自动切割,本脚本以天为单位进行保存。对于日志备份功能,因存储空间不同,所以未编写自动备份功能,根据实际需要,可增加自动备份功能。
注意事项:
1.批处理文件脚本仅每天只能执行一次,重复执行会提示功能选项替换或者备份当天以前的access日志,替换或者重复备份会出现access.log覆盖之前的日志。
2.在实施前,如果需要测试,应在自己的电脑上自行创建脚本所需的nginx安装目录和nginx对应文件夹 logs下的access.log对象文件。
3.批处理的其他功能,请自行创建环境去熟悉。
1.按计划分割日志文件
1.1移动和修改批处理文件
1、注意nginx的安装路径找到,进入logs文件夹。
2、移动批处理文件脚本在nginx的安装路径下的log文件夹。
3、需修改批处理文件中的路径(由于每台服务器的nginx安装路径不一致)详见步骤4更改。
批处理脚本文件:
@shift::设置nginx安装文件路径和当天时间变量
@echo off
set nginx_dir=C:\nginx-1.15.12
set dir=%nginx_dir%\logs\cut_log
set dir2=%nginx_dir%\logs\backup_log
set log=%nginx_dir%\logs\access.log
set today=%date:~0,4%-%date:~5,2%-%date:~8,2%::判断nginx安装文件路径设置是否正确
:exist_nginx_dir
@echo off
if exist %nginx_dir% (
cd %nginx_dir%
goto check_log
) else (
echo 此路径%nginx_dir%不存在,请检查
goto stop
)::判断nginx的access.log
:check_log
@echo off
if exist %log% (
goto check_dir
) else (
echo %log%文件不存在,请检查
goto stop
)::判断nginx的cut_log目录
:check_dir
@echo off
if exist %dir% (
goto check_dir2
) else (
md "%dir%"
goto check_dir2
)
::判断nginx的backup_log目录
:check_dir2
@echo off
if exist %dir2% (
goto p
) else (
md "%dir2%"
goto p
)::打印 当日志重复时,进行功能选择是否替换或者备份
:p
@echo off
if exist %dir%\access-%today%.log (
echo.
echo 注意:
echo 重复备份 和 替换 会覆盖已存在的当天脚本。
echo 请慎重考虑是否 重复备份 和 替换 !
echo.
echo 当天的access-%today%.log已经存在。
echo 是否需要 备份和 替换access-%today%.log?
echo.
echo 输入 y 确认 替换 当天的access.log日志
echo 输入 b 确认 备份 当天的access.log日志
echo 输入 q 或其他 退出
echo.
echo.
echo.
goto check
) else (
goto main
)::进行功能选择是否替换或者备份
:check
@echo off
set /p check_func=请输入:
if %check_func% == b (goto backup)
if %check_func% == y (
goto funy
) else (
goto quit
)::退出
:quit
@echo off
exit
::暂停
:stop
@echo off
pause::创建相关目录和对nginx日志进行切割
:main
@echo off
::结束nginx进程
taskkill /F /IM nginx.exe > nul
move "%log%" "%dir%\access-%today%.log"
start %nginx_dir%\nginx.exe
goto quit::替换日志文件
:funy
@echo off
::结束nginx进程
taskkill /F /IM nginx.exe > nul
move "%log%" "%dir%\access-%today%.log" > nul
start %nginx_dir%\nginx.exe > nul
echo 已完成日志替换
goto stop::备份日志文件
:backup
@echo off
if exist %dir2%\access-%today%.log (
echo 今天保存过的access-%today%.log备份文件已经存在
echo.
echo 如需再次替换今天的备份,请输入c
echo.
goto sure_backup
) else (
copy "%dir%\access-%today%.log" "%dir2%\" > nul
echo 已经完成access-%today%.log文件备份
goto stop
)::确认备份日志文件
:sure_backup
@echo off
set /p check_sure=请输入:
if %check_sure% == c (
copy "%dir%\access-%today%.log" "%dir2%\" > nul
goto backup1
) else (
goto quit
)::判断再次备份的日志文件是否存在
:backup1
@echo off
if exist %dir2%\access-%today%.log (
echo 再次备份的access-%today%.log文件已经存在
goto stop
) else (
goto quit
)
4、复制图中nginx路径,进入log文件夹下,用记事本打开或者编辑修改批处理脚本文件。
5、修改此处路径。将刚刚复制的nginx路径替换图中批处理脚本的路径。
1.2创建Windows按时间执行批处理文件
1、在Windows服务器上创建任务计划程序。(本例以每天保存异一次)
2、任务名称可随意创建, 意思为nginx的access.log文件处理的任务就行。
3、根据需要选择任务时间
4、点击浏览,选择脚本的路径
5、完成
6、修改任务属性
7、修改属性为不管用户是否登录都要运行和使用最高权限运行
2.手动按计划分割后的日志文件备份.bat
1、确认在执行按计划分割日志文件后,cut_log文件夹下由日志文件,backup_log备份文件夹下没有文件。
2、然后手动双击批处理文件,根据弹出的命令行提示输入b ,进行手动备份。
3、提示完成备份后,去备份文件夹下检查。
Windows下 Nginx日志文件按计划时间自动分割、手动备份相关推荐
- linux nginx日志分割,Linux下自动分割Nginx日志文件(二)-----Cronolog
一,简介:cronolog 是一个简单的过滤程序,读取日志文件条目从标准输入和输出的每个条目并写入指定的日志文件的文件名模板和当前的日期和时间.当扩展文件名的变化,目前的文件是关闭,新开辟的.cron ...
- python logging 日志管理系统,handlers.TimedRotatingFileHandler~按照时间自动分割日志文件的bug
handlers.TimedRotatingFileHandler~按照时间自动分割日志文件 此处的时间是时间周期,而不是一个严格的时间段: 例如是从 01:30:04 到 01:31:04 这个时间 ...
- Nginx 日志文件切割
为什么80%的码农都做不了架构师?>>> 偶然发现access.log有21G大,所以将其切割. Nginx 是一个非常轻量的 Web 服务器,体积小.性能高.速度快等诸多优点 ...
- Tomcat logs 目录下各日志文件的含义
[Tomcat]tomcat logs 目录下各日志文件的含义 tomcat每次启动时,自动在logs目录下生产以下日志文件,按照日期自动备份.可以帮助我们更好的找出错误. 一. 认识各种目录的作用及 ...
- 【Tomcat】tomcat logs 目录下各日志文件的含义
[Tomcat]tomcat logs 目录下各日志文件的含义 一.认识各种目录的作用及记录的信息目录 1.catalina.日期.log 2.commons-daemon.日期.log 3.host ...
- 使用logrotate管理nginx日志文件
本文转载自:http://linux008.blog.51cto.com/2837805/555829 描述:linux日志文件如果不定期清理,会填满整个磁盘.这样会很危险,因此日志管理是系统管理员日 ...
- Nginx日志文件的配置
Nginx日志文件的配置 Nginx的日志文件,默认在Nginx程序安装目录的logs二级目录下. 与Nginx日志相关的指令有两条 log_format,用来设置日志的记录格式. Access_lo ...
- 使用Python解析nginx日志文件
项目的一个需求是解析nginx的日志文件. 简单的整理如下: 日志规则描述 首先要明确自己的Nginx的日志格式,这里采用默认Nginx日志格式: log_format main '$remote_a ...
- logrotate管理nginx日志文件
转自:http://linux008.blog.51cto.com/2837805/555829/ 描述:linux日志文件如果不定期清理,会填满整个磁盘.这样会很危险,因此日志管理是系统管理员日常工 ...
- Windows下Nginx的启动、停止等基本命令
2019独角兽企业重金招聘Python工程师标准>>> Windows下Nginx的启动.停止等命令 在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动.停 ...
最新文章
- CQOI2015 任务查询系统
- python 文件操作 os.listdir() 遍历文件
- 我创意很大,玩转《猫和老鼠》手游,瓜分40万大奖
- java visualvm分析_使用VisualVM分析性能
- oracle账号区分大小写吗,实战Oracle 11g用户密码不区分大小写
- python redis模块常用_python-Redis模块常用的方法汇总
- TDengine安装
- python文字转语音的五种方式win32com,pyttsx3,百度api,可使用自己的声音
- java笔试题大全带答案_java笔试题大全带答案(经典11题)
- 圆面积公式积分法推导
- 生产者消费者问题实验java,java实现:《操作系统实验一》:模拟管程解决解决生产者-消费者...
- 常用工具:用yEd工具画流程图实用步骤
- Alpha阶段敏捷冲刺⑦
- stm32启用内部晶振(stm32设置外部晶振)
- 页面的版心html,关于PC端网页版心及网页自适应问题
- mastercam数控编程经验分享,建议收藏
- 打开UG10 C语言错误,UG打开prt文件UTF8归档报错:部件已以UTF8模式归档,但NX运行
- 单行文本溢出省略号,多行文本溢出省略号,多行文本折行(可用)
- 幂函数 指数函数 对数函数
- python 网络嗅探实验