防止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