自动清理IIS日志

2015-01-29  金城  1948

进入服务器界面

将下框内容复制到记事本中,存为 auto_del_iis_logs.vbs 文件。

dim fso,folder,files
set fso = CreateObject("Scripting.FileSystemObject")
dim delCount:delCount=0
dim fileCount:fileCount=0
dim dayNum:dayNum=60 '设定天数;删除60天以前的日志

ProcLogDir "G:\WebLog\"
ProcLogDir "C:\WINDOWS\system32\LogFiles\"

dim msg
title="清理IIS日志("&dayNum&"天以前)" &VBNewLine&VBNewLine

msg=title &msg
msg=msg &"·清理IIS日志完毕;"&vbnewline
msg=msg &"·共有文件" &fileCount &"个;"&vbnewline
msg=msg &"·删除" &delCount &"个。"

msgbox msg

'''''''''''''''''
set folder=nothing
set fso=nothing

'''''''''''''''''
sub ProcLogDir(baseDir)
 dim folder
 Set folder=fso.GetFolder(baseDir &filedir)
 Set sf=folder.SubFolders
 For Each f1 in sf
   deletelog f1.path
 Next
 set sf=nothing 
 set floder=nothing

end sub

sub deletelog(filedir)
 dim folder
 Set folder=fso.GetFolder(filedir)
 '''''''''''''''''
 set files=folder.files
 dim file,fileCount
 fileCount=fileCount+files.count

 For Each file in files
   if (file.DateCreated<now()-dayNum) then
     file.delete
     delCount=delCount+1
   end if
 next

 set files=nothing
 set floder=nothing
end sub

然后右键编辑 auto_del_iis_logs.vbs 文件的属性,选择[脚本]选项卡,勾上 “经过指定的秒数之后终止脚本”,下边选择30秒。点确定。(如果日志较多,删除频率较少,服务器太烂,秒数要加大点)

然后会生成 auto_del_iis_logs.wsh 文件。

再用记事本创建一个 auto_del_iis_logs.bat 文件,内容如下框:(涉及的路径改成自己的)

@echo off
%SystemRoot%\System32\WScript.exe "D:\batch\auto_del_iis_logs.wsh" %*
exit

再运行cmd命令打开命令行窗口,使用 at 命令将 auto_del_iis_logs.bat 加入到计划任务中

C:\Documents and Settings\Administrator>at 3:00 /every:su d:\batch\auto_del_iis_logs.bat
新加了一项作业,其作业 ID = 26

C:\Documents and Settings\Administrator>