zoukankan      html  css  js  c++  java
  • 自动清理w3svc的文件

    防止IIS日志文件在Windows Server上使用过多磁盘空间,压缩和截断日志文件以节省磁盘空间

    日志

    你有没有注意到IIS服务器似乎慢慢占用磁盘空间?如果您要托管许多网站或一些高流量网站,那么消耗大部分硬盘可能并不那么慢。你检查通常的罪魁祸首,如数据库日志文件,临时文件等,但不起眼的IIS网络日志可能是罪魁祸首。

    默认情况下,托管的每个IIS站点将开始将Web日志记录到%SystemDrive% inetpub logs LogFiles中,并且它将每天创建一个新文件。对于某些网站来说,这不是什么大问题,因为文件大小可能只有10KB到1000KB,但对于其他网站,每个文件每天都可以超过100MB。 

    日志 

    如果您将日志文件存储在系统驱动器上,这可能会很快成为问题,实际上建议您不要这样做,但当然它正在发生。为了加剧这个问题,日志文件历史不会被截断,它将永远每天都在创建一个新文件。我前几天登录到IIS服务器,发现日志已经增长到50GB以上。您可以采取几个步骤来避免此问题。

    压缩

    您可以采取的一种措施是压缩日志目录。如果您需要保留所有日志历史记录,这是一个有用的选项。由于日志文件只是每条记录的一行文本,因此可以通过压缩大大减少其文件大小。 

    要自动压缩所有日志文件和任何新文件,请右键单击Widows Explorer中的LogFiles文件夹,然后选择“属性”。然后单击底部的“高级”按钮。在下一个屏幕上,选中“压缩内容以节省磁盘空间”复选框。如果你有很多日志,这可能需要一些时间。

    压缩 赛普拉斯北

    自动截断

    长期解决方案是确定实际需要保留多少天的日志,并定期删除早于此的日志。在我的情况下,我真的不需要超过30天的日志,所以我可以删除超过30天的所有内容。

    此解决方案的第一部分是创建一个VB脚本来删除文件。 

    有空闲时间?参加此在线课程,了解如何使用您需要的选项安装和配置Windows 10。]
    sLogFolder = “c: inetpub  logs  LogFiles” 
    iMaxAge = 30 '天
    设置objFSO = CreateObject(“Scripting.FileSystemObject”)
    set colFolder = objFSO.GetFolder(sLogFolder)
    对于colFolder.SubFolders中的每个colSubfolder 
            设置objFolder = objFSO。 GetFolder(colSubfolder.Path)
            为colFiles中的
            每个objFile 设置colFiles = objFolder.Files 
                    iFileAge = now-objFile.DateCreated 
                    如果iFileAge>(iMaxAge + 1)则
                            objFSO.deletefile objFile,True 
                    end if 
            Next 
    Next

    编辑此脚本以将sLogFolder指向您的实际日志目录,并将iMaxAge变量指向您要保留日志的天数。该脚本将递归循环遍历LogFiles目录并删除早于阈值的文件。

    您可以通过从命令提示符运行以下命令来手动执行此脚本:

    cscript.exe c:path-to-your-scriptsscriptname.vbs

    最后,要完成自动化,请设置计划任务以执行该脚本。使用Windows任务计划程序,创建一个新任务并将触发器设置为每天执行(或任何对您有意义的间隔)。创建一个如下所示的新Action:

    行动 赛普拉斯北

    只需将脚本文件的路径放在Arguments文本框中。

    就是这样!您的日志文件现在将被检查,您将避免IIS服务器安装常见的可用磁盘空间的缓慢消耗。 

    很多人在问我:

    1、Windows Server 2008 计划任务在哪里配置?

    2、Windows Server 2008 可以配置每分钟或是每小时执行我的任务吗?

    答案是:可以!

    首先Windows Server 2008不同于其他服务器操作系统和Windows Server 2003有着很大的区别,计划任务的名称是“任务计划程序”不在控制面板里,而是在“管理工具”里。

    由于服务器需要做些任务,定时执行,自己写程序吧,麻烦,所以采用BAT进行代替操作,网络上很多人都在说每分钟执行怎么配置,今天我们就配置一下。

    打开“任务计划程序”–点击“任务计划程序库”在右则会看到操作项里有“创建基本任务”和“创建任务”如图所示:

    点击“创建任务”后如图所示:填写好相应的名称和勾选好必要的条件

    选择“触发器”选项,点击“新建”,创建任务执行时间,“重复任务间隔”这个选择后,后面有时间选择,是每小时,还是每分,可自己选择后再修改时间,再确定。

    再来配置需要执行的“操作”,就是选择所写的程序或是BAT文件,这里很重要的配置是选择BAT文件后,在“起始于(可选)”这里一定要填写相应执行程序或是BAT文件的所在目录,要不然是执行不成功的。

    特别说明:我差点被骗了,认为Windows计划任务是精确不到分钟级别的,主要是看到“重复时间间隔(P)”右边没有“1分钟”选项,如下图所示:

    其实,它除了下拉选择外,还可手动修改时间值,比如上面的“1分钟”!!!

    添加后,列表栏中会出现添加的计划任务。

     

    参考文献: https://www.itworld.com/article/2859174/prevent-iis-log-files-from-using-too-much-disk-space-on-windows-server.html

    https://blog.csdn.net/dufufd/article/details/53502660

  • 相关阅读:
    常用数据绑定控件详解
    BookList
    BUG:TreeView: NodeCheck Event Does Not Occur
    SQL Server中TEXT类型操作
    Quote:软件开发工程师的经验之谈
    SQL字符串处理函数大全
    Summary 2009 Target 2010
    读取库中的所有表名 列名
    使用大值数据类型
    sql 修改列名及表名 sp_rename
  • 原文地址:https://www.cnblogs.com/fyy-hhzzj/p/9981752.html
Copyright © 2011-2022 走看看