admin 管理员组文章数量: 887006
基础软件和服务都会产生日志,当日志太多就会占用磁盘空间,因此需要定期清除,windows通常使用bat脚本处理
一:日志切割:
1.windows脚本,以nginx 为例
@echo off
c:
set nginx=%C:\Users\Lenovo\Desktop%
set "cmdstr=move %nginx%\logs\access.log %nginx%\logs\access.%date:~0,4%-%date:~5,2%-%date:~8,2%.log
call %cmdstr%"
set "cmdstr=move %nginx%\logs\error.log %nginx%\logs\error.%date:~0,4%-%date:~5,2%-%date:~8,2%.log
call %cmdstr%"
cd %nginx%
nginx -s reopen
这里需要注意,如果操作系统是英文版本,获得当前日期 yyyymmdd使用%date:10,4%%date:7,2%-%date:~4,2%
是中文版使用:%date:0,4%-%date:5,2%-%date:~8,2%
否则生成日期不对
2.nssm工具实现
nssm工具能将服务注册成windows服务,可以在windows services 中开启或者关闭,非常方便,还能做到开机自启,日志分割,如下
nssm下载地址:http://www.nssm/download
1.在nssm.exe 同文件夹下,执行命令nssm.exe install,在弹出框选择执行开启命令以及文件目录
2.选择开机自启
3.选择日志和错误日志
4选择开启是否自动覆盖,日志分割时间和日志分割大小
(这里通常时间过小,如果没有日志的话,就不会分割)
5.完成后可以在运行窗口执行services.msc 在windows文件附中看到注册的服务
修改服务使用nssm.exe edit 服务名
删除使用sc delete 服务名
二:日志清理
bat脚本
set log_dir="C:\server\sms\log\sms\error"
:: 保留日志天数
set bak_dat=2
:: 删除日志文件。解释:删除C:\server\sms\log\sms\info目录下以.log结尾的2天前的文件
forfiles /p %log_dir% /M "*.log" /D -%bak_dat% /C "cmd /c del @file"
:: 删除日志文件夹。解释:删除C:\server\sms\log\sms\info目录下以20开头的15天前的文件夹
::forfiles /p %log_dir% /d -%bak_dat% /m "20*" /c "cmd /c if @isdir==TRUE (rmdir /q /s @path)"
脚本写好后,使用windows 定时任务管理
1.
2创建任务
3.创建名称
4每天夜间执行
5选择bat文件路径,点击确认就可以每天执行,清理日志了
版权声明:本文标题:windows 下日志切割,清理 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1734804588h1670795.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论