فایل لاگ های ثبت شده توسط IIS می توانند به مرور زمان مقدار زیادی فضای دیسک را مصرف کنند. برای کاهش این مشکل ، راهکار پیشنهادی توسط شرکت بهین راهکار به شرح زیر ارائه می گردد.
می توانید با اجرای اسکریپتی که در ادامه توضیح داده شده است، به طور خودکار لاگ های قدیمی را حذف نمایید و از طریق اجرای تسک زمان بندی شده، فضای مورد استفاده توسط لاگ های IIS را به صورت مداوم کنترل نمایید. برای این منظور مراحل زیر را دنبال نمایید.
ابتدا اسکریپت زیر را در یک فایل با پسوند .vbs ذخیره نمایید.
sLogFolder = "c:\inetpub\logs\LogFiles"
iMaxAge = 1 '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
این اسکریپت تمام subfolder ها را در مسیر مشخص شده و بر اساس زمان هر لاگ بررسی می کند، سپس لاگ های قدیمی تر از زمان مشخص شده را حذف می نماید.
نکته
پیشنهاد شرکت به صورت پیشفرض در اسکریپت مشخص شده است. در صورت نیاز می توان در خط اول اسکریپت، مسیر فایل لاگ و در خط دوم اسکریپت، تعداد روز های مد نظر برای نگهداری لاگ ها را مشخص نمود.
- با اجرای این اسکریپت تنها لاگ های دو روز اخیر در سیستم نگهداری می شوند.
- برای اتوماتیک سازی این روند از Windows Task Scheduler استفاده نمایید.
- با استفاده از منوی Tools در Server Manager گزینه Task Scheduler را انتخاب نمایید.
- از پنل Actions بر روی گزینه Create Task کلیک کنید.
در تب General نام تسک را انتخاب نمایید.
در تب Triggers یک برنامه زمان بندی روزانه برای اجرای تسک مشخص نمایید. و گزینه Enable را فعال نمایید.
در تب Actions همانند تصویر زیر با استفاده از cscript.exe و مشخص کردن مسیر فایل اسکریپتی (که در مرحله 1 ذخیره کردید) در Add arguments، می توانید Action مربوط به این تسک را تعریف نمایید.
در نهایت تسک مربوطه را ذخیره نمایید و برای اطمینان از اجرای صحیح تسک می توانید یک بار تسک را Run نمایید.