IIS日志自动删除程序 收藏

很多使用Windows IIS的站长可能都会遇到这个问题,就是服务器的IIS日志增长经常会导致磁盘空间被占满,而IIS也没有自动删除日志的功能,因此需要经常关注即时清理日志,因此我这里就介绍一个能够自动删除IIS日志的程序。

  这个删除程序的功能很简单,每天自动删除N天前的日志(时间根据情况自己设置,一般设置为30天),可以使用DOS批处理或VBS脚本来实现。

  在下边的解决方案里请大家可以选择适合自己的,总体设计思路是这样的:

  IIS日志文件的格式是:ex年月日.log 比如:ex071116.log

  IIS日志文件存储位置:默认情况下是在:%windir%\system32\LogFiles ,如果您使用的是专业的IIS管理软件,里面一般会让你设置相应日志目录。

  IIS日志清理批处理版:跟据当前时间计算出前N天的日期,比如今天是:2007-11-16,前60天的日期就是2007-9-16(程序可以自动识别30天或31天或润月),然后再处理成20070916这样的格式,然后再组合成ex070916.log这样的IIS日志文件格式,这样一来我们就得到的要清理的日志文件名然后,我们再使用del /s /f d:\iislog\ex070916.log 来清除日志所在文件夹目录及子目录下的所有这个文件名的文件了,从而清除志,但这个仅仅是清除一天的日志,所以我们还得把这个批处理加到计划任务里,让它每天定时执行,这样一来,所有的计算机的日志问题我们就可以不用管了。

成年人必须看的性科普知识,一场迟到的性教育(下)

  IIS日志清理VBS版:VBS版理论是没有iis版快,因为他还要借助脚本驱动,而不像cmd版直接使用dos系统的批处理功能快(猜的),VBS毕竟是高级语言,处理日期的能力用一句话就实现了,而CMD版得写半页。IIS日志清理VBS版的实现用VBS遍历IIS日志所在目录下的所有文件,及文件夹,然后取文件名组合成日期型的,然后当前日期-这个日期,看看是不是超过了设定的天数,超过的话delete,这种思路有个好处就是一次可以清除N天前的所有记录,而不是只是一天的,他可以你CMD版日志清理一样,把这个脚本写到计划任务里,天天运行,也可以过一段时间手动运行一次。这个代码明显比IIS日志清理CMD版少了。

  IIS日志清理CMD版代码(DelIISLog.bat)代码如下:

@echo off  title  ::设置当前日期前多少天或后多少天  set/a beforedays=-3  ::设置目录所在位置  set dir="F:\log\"  ::当前日期转换为天数并进行计算  call :Date2Day %date:~0,10% days  set/a days=%days%%beforedays%  call :Day2Date %days% lastdate  ::计算完毕,生成想要的字符组合  set okstr=ex%lastdate:~2,6%.log  ::删除这些文件  del del /f /s /q %dir%\%okstr%  cmd /k  :Date2Day  setlocal ENABLEEXTENSIONS  for /f "tokens=1-3 delims=/-, " %%a in (‘echo/%1‘) do (  set yy=%%a & set mm=%%b & set dd=%%c  )  set /a dd=100%dd%%%100,mm=100%mm%%%100  set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2  set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633  endlocal&set %2=%j%&goto :EOF  :Day2Date  setlocal ENABLEEXTENSIONS  set /a i=%1,a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a  set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5  set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10  (if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)  endlocal&set %2=%yy%%mm%%dd%&goto :EOF

  IIS日志清理VBS版代码(DelIISLog.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 "D:\IISLogTest",20 ‘遍历

时间: 2024-10-07 09:39:46

IIS日志自动删除程序 收藏的相关文章

mysql binlog日志自动清理及手动删除

说明:当开启mysql数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间.mysql-bin.000001mysql-bin.000002mysql-bin.000003mysql-bin.000004mysql-bin.000005-有三种解决方法:1.关闭mysql主从,关闭binlog:2.开启mysql主从,设置expire_logs_days:3.手动清除binlog文件,> PURGE MASTER LOGS TO 'MySQL-bin

mysql主从binlog日志自动清理及手动删除

问题反馈: mysql主从,在没有设置自动清理binlog日志的情况下,会产生庞大的同步日志文件,占用磁盘空间. 1 手动清理binlog日志,purge master logs 1.1 删除在"指定日期前"或"指定日志前"的所有二进制binlog日志文件   PURGE {MASTER | BINARY} LOGS TO 'log_name'     PURGE {MASTER | BINARY} LOGS BEFORE 'date' 实例: PURGE MAST

【转载】mysql binlog日志自动清理及手动删除

说明:当开启mysql数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间.mysql-bin.000001mysql-bin.000002mysql-bin.000003mysql-bin.000004mysql-bin.000005…有三种解决方法:1.关闭mysql主从,关闭binlog:2.开启mysql主从,设置expire_logs_days:3.手动清除binlog文件,> PURGE MASTER LOGS TO ‘MySQL-bin

【转】IIS日志-网站运维的好帮手

对于一个需要长期维护的网站来说,如何让网站长久稳定运行是件很有意义的事情. 有些在开发阶段没有暴露的问题很有可能就在运维阶段出现了,这也是很正常的. 还有些时候,我们希望不断地优化网站,让网站更快速的响应用户请求, 这些事情都发生在开发之后的运维阶段. 与开发阶段不同的,运维阶段不可能让你去调试程序,发现各类问题, 我们只能通过各种系统日志来分析网站的运行状况, 对于部署在IIS上的网站来说,IIS日志提供了最有价值的信息,我们可以通过它来分析网站的响应情况,来判断网站是否有性能问题, 或者存在

IIS日志-网站运维的好帮手

原文:IIS日志-网站运维的好帮手 对于一个需要长期维护的网站来说,如何让网站长久稳定运行是件很有意义的事情. 有些在开发阶段没有暴露的问题很有可能就在运维阶段出现了,这也是很正常的. 还有些时候,我们希望不断地优化网站,让网站更快速的响应用户请求, 这些事情都发生在开发之后的运维阶段. 与开发阶段不同的,运维阶段不可能让你去调试程序,发现各类问题, 我们只能通过各种系统日志来分析网站的运行状况, 对于部署在IIS上的网站来说,IIS日志提供了最有价值的信息,我们可以通过它来分析网站的响应情况,

C#删除程序自身【总结】

出处:http://www.cnblogs.com/Interkey/ 偶然看到一个可以自删除的程序,于是了解下如何实现.然后整理如下: 思路: 在.NET程序中,因为运行中的程序是受系统保护的,不能自己删除自身的,所以自删除的思路:  在关闭本程序之前启动新的进程打开另一个程序,调用这个程序来删除原程序.然后再完成外部进程的销毁. 操作: 方法一:程序中打开新的进程,删掉程序后,再销毁进程本身 流程:首先生成一个BAT文件,然后让BAT执行删除动作,就是: 1.生成删除的BAT 2.运行BAT

定期删除IIS日志文件

服务器中由于监控的需要会经常生成很多日志文件,比如IIS日志文件(C:\inetpub\logs\LogFiles),一个稍微有流量的网站,其日志每天可以达到上百兆,这些文件日积月累会严重的占用服务器磁盘空间.有必要对他们进行定期删除.dos批处理程序如下: :: 清理IIS日志文件 :: 备份MySql数据库 @echo off title 清理IIS日志文件 :: IIS日志文件目录 set log_dir="C:\inetpub\logs\LogFiles" :: 保留日志天数

对mysqlbinlog日志进行操作的总结包括 启用,过期自动删除

操作命令: show binlog events in 'binlog.000016' limit 10; reset master 删除所有的二进制日志 flush logs  产生一个新的binlog日志文件 show master logs; / show binary logs; 查看二进制文件列表和文件大小 ./mysqlbinlog --start-datetime="2012-05-21 15:30:00" --stop-datetime="2012-05-21

android如何添加桌面图标和卸载程序后自动删除图标

android如何添加桌面图标和卸载程序后自动删除桌面图标,这是一个应用的安装与卸载过程对桌面图标的操作,下面与大家分享下具体是如何实现的,感兴趣的朋友可以参考下哈 1:创建图标如下 Intent intent = new Intent(); intent.setClass(this, SplashActivity.class); Intent addShortcut = new Intent(ACTION_ADD_SHORTCUT); Parcelable icon = Intent.Shor