• [译]管理IIS日志的存储


    原文: http://www.iis.net/learn/manage/provisioning-and-managing-iis/managing-iis-log-file-storage

    Overview

    IIS日志会消耗大量的硬盘空间,有潜在写满整个硬盘空间的风险. 为了解决这个问题很多用户会选择关闭日志.幸运的是 这里有些其它的选择:

    你可以根据下面的方案控制硬盘的使用率:

    • 通过减少不必要的字段减少日志大小
    • 根据网站和应用程序创建独立的日志
    • Preserve memory resources by using centralized binary logging.

    更多请见 Configuring Logging in IIS.

    压缩日志文件夹

    IIS日志文件压缩原始大小的2%. 通过下面的方法压缩日志文件夹. 执行下面的步骤前请确保你拥有管理员权限.

    1. 点击文件资源管理器.
    2. 进入到IIS日志文件夹 (默认是, %SystemDrive%inetpublogsLogFiles).
    3. 右键日志文件夹选择属性.
    4. 在属性的常规标签点击高级.
    5. 选中压缩内容以便节省磁盘空间,然后点击确定.
    6. 点击应用Click Apply,选择压缩所有子文件夹和文件.
    7. 点击确定. 如果文件夹的文件名变成蓝色了那么你的操作成功了.

    这是个减少日志占用硬盘空间的简单方法, 不是最终的解决方案. 然后以为日志文件一天天的增涨最后还是会沾满硬盘空间.

    如果日志文件夹下有大量的日志,压缩日志文件夹的过程可能会稍长一些,建议在网站服务器的非高峰期压缩日志文件夹.

    将日志文件夹移到远程系统上去

    IIS日志文件默认存储在IIS服务器的 %SystemDrive%inetpublogsLogFiles  下面.你可以把IIS日志文件夹移去一个有更多硬盘空间的服务器上面去.

    将IIS日志文件夹设为远程服务器的方法步骤如下:

    1. 在远程服务器上创建一个文件夹作为日志文件夹.
    2. 右键这个文件夹选择属性, 在共享标签下点击共享. 在安全标签下, 分配相应的权限. 确保合适的组或用户名有读写日志文件的权限.

      更多请见 Configuring Permissions for Remote Logging.

      Note: 如果你像将日志文件写到一个不同domain的远程服务器上请看看这篇文章 Setting Up a Null Session for Cross-Domain Logging.

    3. 打开IIS管理器.
    4. 点击服务器或者某个网站.
    5. 双击日志图标.
    6. 在目录的文本框内输入1中创建的远程共享的日志文件的路径. 例如 输入 \servernameLogs
    7. 在右边的操作面板点击应用并且确认.

      更多请见 Remote Logging.

    使用脚本删除老的日志

    你可以运行脚本自动删除老日志. 

    下面的 VBScript 会坚持日志的日期 删除老的日志 下面的脚本删除30天以前的日志

    sLogFolder = "c:inetpublogsLogFiles"
    iMaxAge = 30   'in days
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    set colFolder = objFSO.GetFolder(sLogFolder)
    For Each colSubfolder in colFolder.SubFolders
            Set objFolder = objFSO.GetFolder(colSubfolder.Path)
            Set colFiles = objFolder.Files
            For Each objFile in colFiles
                    iFileAge = now-objFile.DateCreated
                    if iFileAge > (iMaxAge+1)  then
                            objFSO.deletefile objFile, True
                    end if
            Next
    Next

    上面的脚本会扫描所有的子文件夹, 所以他会处理所有网站的日志. 如果你想限制只扫描一个网站的话修改第一行的路径就可以了.

    通过下面的命令行手动运行脚本:

    cscript.exe c:scripts etentionscript.vbs

    在任务计划程序里面自动调用上面的脚本定时清除老日志

    你可以创建一个windows任务自动调用上面的脚本定时清除老日志, 方法步骤如下.

      1. 打开任务计划程序.
      2. 在操作面板中点击创建任务.
      3. 在常规tab中的名字中输入任务名字,如 "Delete Log Files". 在安全选项中选择有权限的合适的用户来运行这个任务脚本.
      4. 在触发器tab中点击新建.  非常简单按照下面的图片来设置就行了.
      5. 点击操作Tab, 点击新建. 在操作中选择启动程序. 在程序或脚本中输入cscript, 在添加参数中 输入上面脚本的路径和文件名, 例如, "C:iisLog_File_Deletion.vbs".
      6. 点击确定.
      7. 验证任务是否被添加到了任务计划程序库中.
      8. 右键这个新任务点击运行.
      9. 回到日志文件夹下面 看看对应的日志是不是被删除了了.

    使用IIS Log Cleaner Tool删除老日志

    在这http://www.erezbenari.com/IISLogCleaner.exe 下载这个工具 这个不是微软官方的工具

  • 相关阅读:
    运行JBoss 5.1.0 GA时出现Error installing to Instantiated:name=AttachmentStore state=Described错误的解决办法
    java中log4j的使用体验
    C#:DataTable映射成Model
    使用MyBatis搭建一个访问mysql数据库的简单示例
    netty的拆包和粘包
    netty的HelloWorld演示
    ByteBuffer详解
    汉字拼音缩写输出工具类
    mysql错误汇集
    mysql的定时任务
  • 原文地址:https://www.cnblogs.com/irocker/p/managing-iis-log-file-storage.html
Copyright © 2020-2023  润新知