这是我的脚本,它基本上改编了大卫的脚本,压缩了上个月的日志,移动它们并删除了原始日志文件。这也可以适用于 Apache 日志。唯一的问题是,如果您的 DOS 日期函数输出星期几,您可能需要编辑替换命令。您还需要安装 7-zip。
您也可以下载 IISlogslite,但它会将每天的文件压缩成一个 zip 文件,我觉得这没什么用。有一个 vbscript 漂浮在网络上,它做同样的事情。
-------------------------------------------------- ----------------------------------
@echo on
:: 名称 - iislogzip.bat
:: 描述 - 服务器日志文件管理器
::
:: 历史
:: 日期授权变更
:: 2008 年 8 月 27 日 David Crow 原创(在堆栈溢出中找到)
:: 2008 年 10 月 15 日 AIMackenzie 精简命令
:: ================================================= ========
:: 设置变量和参数
:: ================================================= ========
:: 生成日期和时间变量
设置月份=%DATE:~3,2%
设置年份=%DATE:~8,2%
::获取上个月并检查边缘条件
设置 /a lastmonth=%month%-1
if %lastmonth% equ 0 设置 /a year=%year%-1
如果 %lastmonth% equ 0 设置 lastmonth=12
if %lastmonth% lss 10 设置 lastmonth=0%lastmonth%
设置 yymm=%year%%lastmonth%
设置 logpath="C:\WINDOWS\system32\LogFiles"
设置 zippath="C:\Program Files\7-Zip\7z.exe"
设置 arcpath="C:\WINDOWS\system32\LogFiles\WUDF"
:: ================================================= ========
:: 更改为日志文件路径
:: ================================================= ========
cd /D %logpath%
:: ================================================= ========
:: 压缩上个月的 IIS 日志文件,将压缩文件移动到存档
:: 然后删除旧日志
:: ================================================= ========
%zippath% a -tzip ex%yymm%-logs.zip %logpath%\ex%yymm%*.log
移动 "%logpath%\*.zip" "%arcpath%"
del %logpath%\ex%yymm%*.log