1. 程式人生 > >自動清理w3svc的檔案

自動清理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-scripts\scriptname.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