1. 程式人生 > 其它 >windows伺服器自動刪除日誌檔案

windows伺服器自動刪除日誌檔案

背景:

有一天發現一系統程式突然終止了,發出了系統異常郵件。然後就去伺服器看原因,原因竟然是伺服器硬碟被撐爆。

原因分析:

1、沒有對伺服器硬碟空間做監控;

2、我們的產生的日誌檔案過於龐大,又沒有做及時刪除。

解決方案:

為了一勞永逸的解決硬碟空間問題,我們對伺服器日誌檔案進行定時刪除處理,只保留最近一個月的日誌檔案。

步驟:

1、新建一個bat指令碼。

2、新增到window執行計劃中,進行每日執行。

具體操作

1、新建一個 del_before_30days.bat 檔案。

內容:

forfiles -p "E:\working\logs" -s -m *.log -d -30 -c "cmd /c del @path"

指令碼意思為:

路徑:為E:\working\logs 的下 以匹配 .log 的檔案,刪除30天前的日誌檔案。

forfiles 命令的用法及引數:
forfiles /p <目標目錄名> /d <天數> /c <執行的命令>

/p 指定的路徑

/s 包括子目錄

/m 查詢的檔名掩碼

/d 指定日期,有絕對日期和相對日期, 此處-7指當前日期 的7天前

/c 執行的命令列 表示為每個檔案執行的命令。命令字串應該用雙引號括起來。

預設命令是 "cmd /c echo @file"。下列變數

可以用在命令字串中:

@file - 返回檔名。

@fname - 返回不帶副檔名的檔名。

@ext - 只返回檔案的擴充套件。

@path - 返回檔案的完整路徑。

@relpath - 返回檔案的相對路徑。

@isdir - 如果檔案型別是目錄,返回 "TRUE"; 如果是檔案,返回 "FALSE"。

@fsize - 以位元組為單位返回檔案大小。

@fdate - 返回檔案上一次修改的日期。

@ftime - 返回檔案上一次修改的時間。


2、新增到windows的任務計劃程式。

我的電腦——>右鍵——>管理——>系統工具—>任務計劃程式——>建立基本任務,定義好名字 ,定義每天定時刪除即可。

(win10的是 控制面板-管理工具-任務計劃程式)

修改伺服器密碼會導致任務執行失敗

莫名的日誌一直在堆積,日誌已經大量佔用硬碟,是一個隱患 ,懷疑是自己之前的自動刪除日子的指令碼 執行失敗?還是遺漏了刪除該資料夾下的日誌。
發現都沒有問題,去檢視該計劃,發現有執行失敗報錯資訊
顯示無法正確登入,導致執行刪除任務失敗。
才想起前一段時間, 機房把所有伺服器的密碼已經變更了。
因為伺服器密碼全部更改。導致刪除日誌的計劃任務執行失敗。
只好重新設定密碼進行執行。