windows下nginx日誌分割實現

在windows下安裝nginx後,由於nginx本身沒有提供日誌分割的功能配置,所以只能通過windows的計劃任務來實現該功能,並需要配合寫一個簡單的分割用的批處理命令來用。

 

假設我的nginx安裝在D:\nginx目錄下,而相關應用的日誌被配置爲3個日誌,分別爲:

  • xxxxx.com.log  正常的應用訪問日誌
  • xxxxx.com_444.log 非法訪問日誌,在nginx中,444爲特有的拒絕連接狀態,所以設爲444別名
  • xxxxx.com_res.log 靜態資源訪問日誌

現在需要每天將日誌分割到單獨的目錄下,並按年月日目錄區分:

先寫批准處理的bat腳本如下:

for /f "tokens=1 delims=/ " %%j in ("%date%") do set d1=%%j
for /f "tokens=2 delims=/ " %%j in ("%date%") do set d2=%%j
for /f "tokens=3 delims=/ " %%j in ("%date%") do set d3=%%j

set backupdir=d:\backup\%d1%\%d2%\%d3%

mkdir %backupdir%

move d:\ngins\logs\xxxxx.com*log %backupdir%

d:\ngins\nginx -s reload

 上面的命令先將date按/符號分割爲年月日的3個字符串,並在D盤的backup目錄下創建年\月\日的目錄,然後將對應應用的所有匹配的訪問日誌都移動到新創建的目錄下,最後重新載入nginx配置(相當於重啓)。

 

注意:上面對%date%的分割,未必一定是/符號,我在不同的windows系統上見過不同的分隔符,有的表示爲如2014/05/04,有的則表示爲2014-05-04的格式,所以要視實際情況來使用對應的分隔符。

 

批處理寫完後,可以先嚐試執行下看看效果,建議以上所有路徑都使用絕對路徑,避免分配到計劃任務的時候執行失敗。

 

下面就是添加到系統的計劃任務裏面,這個就比較簡單:

開始 - > 程序 -> 附件 -> 系統工具 -> 任務計劃程序,添加任務,然後根據提示一步步完成操作就可以了,添加完成後可以右擊任務運行看看效果,確定沒有問題後,就可以等第二天看結果了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章