批处理自动删除IIS日志

2016/10/30 12:03:58 人评论 次浏览 分类:服务器


通过批处理自动删除IIS日志、数据库备份日志和FTP登录日志。IIS日志文件存储位置:默认情况下是在:%windir%\system32\LogFiles,详见修改IIS日志的存放路径。推荐使用bat批处理脚本方式进行批处理自动删除IIS日志。如果需要定期的清理日志只需要在服务器中创建定时的任务计划即可。


【bat批处理脚本方式】

通过判断修改时间要删除日志文件,因为一般的日志文件的修改时间是日志的创建时间,除非有人修改日志文件,修改日期才会发生改变。这种方式不用管日志文件的名称。
代码如下:
------------------------------------------------------------------
:: 清理IIS日志文件
@echo off
title 清理IIS日志文件

:: IIS日志文件目录
set log_dir="C:\log"

:: 保留日志天数
set bak_dat=268

:: 删除日志文件
forfiles /p %log_dir% /S /M *.log /D -%bak_dat% /C "cmd /c echo 正在删除@relpath 文件… & echo. & del @file"

将上面的代码复制到文本文件中,修改文件名为DelIISLog.bat;
DelIISLog.bat
------------------------------------------------------------------
注意:
1.不用管日志文件的名称,需要指定文件的后缀名称
2.删除的时间是日志文件的修改时间
3.会遍历深层子文件夹的日志文件,注意子文件夹的其他文件不会被误删除
4.直接使用,基本不用改动代码,只要改动路径和后缀即可


【windows的JScript脚本方式】
这段JScript代码的使用条件:在指定的路径下C:\\log的子文件夹含有W3SVC命名的文件夹底下u_ex160213.log格式的文件(IIS7)。IIS6的日志文件的格式是ex160625.log这种的。
------------------------------------------------------------------
function dellogfile(beforedays)
{
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var dir = fso.GetFolder("C:\\log");    //改成你的 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(4, 2);//需要根据日志文件的命名规则进行调整
                var mouth = fileName.substr(6, 2);//需要根据日志文件的命名规则进行调整
                var day = fileName.substr(8, 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(30);//删除30天前的日志

//保持命令行界面不关闭
var i=0;
while(1)
{
    i++;
}
------------------------------------------------------------------
使用步骤:
1.将上面的代码复制到文本文件中,修改文件名为rmiislog.js;
2. 将 ”cscript rmiislog.js“  复制到文本文件中,修改文件名为rmiislog.bat,批处理文件;

这种方式是依赖文件名的,而且u_ex160213.log的命名方式是IIS特定的,如果要删除其他的比如ftp的登录日志等就需要调整JScript脚本程序。这段脚本的实现原理是通过遍历目录底下的所有的文件名,将文件名中的年月日进行截取和拼接成日期格式,与当前时间计算间隔的天数来进行判断。

注意:
1.日志文件名中必须包含日期的字符串
2.不用考虑文件名的后缀,只要符合日期条件的都会删除
3.对于删除不同命名格式的各种日志文件,都有可能要调整一下JScript的代码
4.只能删除指定文件夹目录底下的日志,无法进入子文件夹




相关资讯

  • 如何理解阿里云ECS的10%15%CPU性能基线

    我们经常在阿里云的优惠活动中看到一些性价比很高的云服务器 ECS,不过也经常看到有“10%基准 CPU 性能”或“15%基准 CPU 性能”之类的提示,那么到底这个 10%15%CPU 性能基线是什么意思呢?其实,只需要我们弄懂以下几个基本概念之后应该就差不多了解 10%15%CPU 性能基线是什…

    2019/8/17 16:46:50
  • 阿里云Ubuntu报sudo: unable to resolve host的错误

    Ubuntu 环境在每次执行命令的时候,会报如下错误:sudo: unable to resolve host iZbp1be5wmfo9n347gkgn8Z

    2018/2/15 14:52:01
  • VirtualBox出现UUID does not match the value和stored in the media registry的解决方案

    出现UUID does not match the value的这个错误,一般是在转移VirtualBox的磁盘时候,比如更换虚拟磁盘的目录的时候,或者是之前备份现在需要启动,又或者虚拟磁盘占用的空间比较大的时候需要转移到其他磁盘驱动器。这种情况,需要释放删除挂载的磁盘,之后再重新挂载该硬盘即可…

    2017/10/19 20:18:27
  • Centos 7 系统安装gnome可视化图形界面

    安装Graphical Administration Tools 不成功,出现“group graphical-admin-tools does not have any packages to install”和“Group graohical-admin-tools does have 1 conditional packages,which mayget installed.”的提示。

    2017/10/19 18:58:52