[点晴永久免费OA]Windows中IIS操作日志自动清理脚本(BAT版/VBS版/JS版)
当前位置:点晴教程→点晴OA办公管理信息系统
→『 经验分享&问题答疑 』
IIS默认日志记录在C:\WINDOWS\system32\LogFiles,IIS网站管理器没有提供自动删除操作日志功能,时间一长,特别是子站点多的服务器,一个稍微有流量的网站,其日志每天可以达到上百兆,这些文件日积月累会严重的占用服务器磁盘空间,有必要对他们进行定期删除。 BAT版 @echo off title 清理IIS日志文件 :: IIS日志文件目录 set log_dir="C:\inetpub\logs\LogFiles" :: 保留日志天数 set bak_dat=15 :: 删除日志文件 forfiles /p %log_dir% /S /M *.log /D -%bak_dat% /C "cmd /c echo 正在删除@relpath 文件… & echo. & del @file" VBS版 'IIS日志清理VBS版代码(DelIISLog.vbs) '调用方法:DelIISLog "IIS日志所在路径",保留多少天的IIS日志 '遍历IIS日志文件夹下的所有文件及子文件夹下的文件 Function DelIISLog(IISLogPath,KeepDays) on error resume next Set oFso = createObject("scripting.FileSystemObject") Set oFolder = oFso.GetFolder(IISLogPath) Set oSubFolders = oFolder.SubFolders '得到该目录下所有的文件夹的集合 Set oFiles = oFolder.Files '得到该目录下所有的文件的集合 '第一步处理当前目录下的所有文件 For Each oFile In oFiles '遍历所有文件 if right(oFile.name,3)="log" then oDate=cdate("20" & mid(oFile.name,3,2) & "-" & mid(oFile.name,5,2) & "-" & mid(oFile.name,7,2)) if date-oDate > KeepDays then oFile.delete '判断是不是要处理的IIS日志文件,如果是的话直接删除 end if Next '第二步处理当前目录下的所有目录,进行递归调用 For Each oSubFolder In oSubFolders DelIISLog oSubFolder.Path,KeepDays '递归 Next End Function DelIISLog "C:\WINDOWS\system32\LogFiles",180 '遍历 您可以通过从命令提示符运行以下命令来手动执行此脚本: cscript.exe c:\path-to-your-scripts\DelIISLog.vbs JS版 //IIS日志清理JS版代码(DelIISLog.js) //调用方法:dellogfile(180),保留多少天的IIS日志 function dellogfile(beforedays) { var fso = new ActiveXObject("scripting.FileSystemObject"); var dir = fso.GetFolder("c:\\WINDOWS\\system32\\LogFiles"); //改成你的 IIS 日志目录 for (var fc = new Enumerator(dir.SubFolders); !fc.atEnd(); fc.moveNext()) { if (fc.item().name.substr(0,5) == "W3SVC") { for (var logfiles = new Enumerator(fc.item().Files); !logfiles.atEnd(); logfiles.moveNext()) { var fileName = logfiles.item().name; var year = "20" + fileName.substr(2, 2); var mouth = fileName.substr(4, 2); var day = fileName.substr(6, 2); var days = Math.round(((new Date()).getTime() - Date.UTC(year, mouth - 1, day)) / 1000 / 60 / 60 / 24); if (days >= beforedays) logfiles.item().delete(); } } } } dellogfile(180);//删除180天前的日志将以上命令保存成相应后缀的文件:DelIISLog.bat、DelIISLog.vbs、DelIISLog.js,然后放到Windows系统中定时任务里面执行,即可定时清理日志记录。 使用Windows任务计划程序,创建一个新任务并将触发器设置为每天执行(或任何对您有意义的间隔)。创建一个如下所示的新操作: 很多人在问我: 1、Windows Server 计划任务在哪里配置? 2、Windows Server 可以配置每分钟或是每小时执行我的任务吗? 答案是:可以! 首先Windows Server 计划任务的名称是“任务计划程序”不在控制面板里,而是在“管理工具”里。打开“任务计划程序”–点击“任务计划程序库”在右则会看到操作项里有“创建基本任务”和“创建任务”如图所示: 点击“创建任务”后如图所示:填写好相应的名称和勾选好必要的条件 选择“触发器”选项,点击“新建”,创建任务执行时间,“重复任务间隔”这个选择后,后面有时间选择,是每小时,还是每分,可自己选择后再修改时间,再确定。这里我们设置为每天1次即可,时间随便选一个。 再来配置需要执行的“操作”,就是选择所写的程序或是BAT文件,这里很重要的配置是选择BAT文件后,在“起始于(可选)”这里一定要填写相应执行程序或是BAT文件的所在目录,要不然是执行不成功的。 特别说明:我差点被骗了,认为Windows计划任务是精确不到分钟级别的,主要是看到“重复时间间隔(P)”右边没有“1分钟”选项,如下图所示: 其实,它除了下拉选择外,还可手动修改时间值,比如上面的“1分钟”!!! 保存时,还会需要提供操作者密码,提供后保存即可: 添加后,列表栏中会出现添加的计划任务。 该文章在 2023/9/26 10:24:15 编辑过 |
关键字查询
相关文章
正在查询... |