前言
之前项目因为各种原因没有上 CI/CD,也没有部署什么 nginx 管理工具,再加上 nginx 部署在 windows server 上,面对日积月累不停膨胀的日志文件,需要一个定时脚本处理自动分割日志文件。
本篇文章主要讲解如何在 windows 上创建定时任务,以及如何编写一个简单的 bat 脚本
Windows 备份脚本
注意:
- 路径一定要写绝对路径,否则在定时任务中相对路径会认为是C盘
- nginx 一定要重启,否则日志文件将不会自动生成
less
@echo off
:: 切换字符编码为 utf-8
chcp 65001
set log_date=%date:~3,4%%date:~8,2%%date:~11,2%
set path=E:\dev_env\nginx-1.16.1\logs-bak\%log_date%
:: 创建文件夹
md %path%
:: 备份文件
copy E:\dev_env\nginx-1.16.1\logs %path%
:: 删除文件
erase /Q E:\dev_env\nginx-1.16.1\logs
nginx -s reload
Windows 定时任务
一、打开控制面板,点击管理工具
二、点击任务计划程序
三、创建一个新任务
注:可以先创建一个 myTask 文件夹,统一维护用户创建的任务
四、填写常规配置
五、添加触发器
六、配置定时器
七、新建触发任务
八、配置任务脚本
注:如果脚本中使用的是相对路径,则需要配置【起始于】的初始路径
九、配置脚本中的相对路径
脚本:
bash
@echo off
:: 切换字符编码为 utf-8
chcp 65001
set log_date=%date:~3,4%%date:~8,2%%date:~11,2%
set path=.\logs-bak\%log_date%
:: 创建文件夹
md %path%
:: 备份文件
copy .\logs\*.log %path%
:: 删除文件
erase /Q .\logs\*.log
nginx -s reload
定时任务