緣起:
不久前發生一件事,正式機站台的 C
槽快沒容量,大部份的容量都是被 IIS 的 Log
給佔走,因為合約有說要保留至少半年的 Log。有些流量大的站台,一天就會產生 200
多 MB 的 log txt 檔,每個站台的 log 檔加總起來,可以到 40
GB,非常的可怕。
PM
有指定我幫忙處理這件事,資深的工程師也有教我怎麼下指令來處理這件事。紀錄下來,到時再碰上就可以直接
copy 來用。
搬運 log 到 D 槽:
這邊是用 XCOPY 這個指令來做,那時下的指令長這樣
XCOPY C:\inetpub\logs\LogFiles D:\{備份log資料夾} /D:01-01-2024/K/E/Y/C/I/H
沒意外的話,iis 的 log 基本上都是放在
C:\inetpub\logs\LogFiles 裡,xcopy 的參數可以到官網查看,比較重要的是那個 /D,可以指定抓某日期變動後的檔案,格式是
/D:{MM-dd-yyyy}。
下好指令後就可以等它 copy,我那時在 copy 時還碰上 D
槽容量不夠的情況,所以只能先把以前備份的 log
壓縮檔給移除來騰出空間,它們主機的 C 槽跟 D 槽都只有 100 G
左右,超小的。
複製完後,還有一個指令要執行,它的目地是要把空資料夾給砍掉
@echo off
for /f "delims=" %%a in ('dir /ad /b /s D:\{備份log資料夾}^|sort /r') do (
rd "%%a">nul 2>nul &&echo 空目錄"%%a"成功刪除!
)
log 檔搬運完後,就可以接著處理 C 槽原本的 log
檔,我們是把 30 天後的 log 給砍了。
用 Forfiles 清除 30 天後的 log:
forfiles /p C:\inetpub\logs\LogFiles /s /m *.log /d –30 /c "cmd /c del @path"
然後等它處理完就 ok 了。
沒有留言:
張貼留言