nginx日誌分割:windows和linux

1、爲何對日誌進行分割。linux

1.nginx日誌默認狀況下通通寫入到一個文件中,文件會變的愈來愈大.nginx

2.單個的日誌文件很是不方便查看分析。windows

2、簡析日誌分割。app

不管是windows仍是linux,對日誌的分割都是一條思路。即:ide

1.對現有日誌文件進行重命名。spa

2.生成新的日誌文件。日誌

3.定製腳本,定時執行.orm

3、日誌分割實操。server

windows系統:blog

1.logcut.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=C:\nginx\logs\%d1%\%d2%\%d3%

mkdir %backupdir%

#移動原有日誌,至關於重命名

move F:\nginx\access.log %backupdir%

#重開日誌,生成新的日誌文件

F:\nginx\nginx.exe -s reopen

2.經過windows的計劃任務來實現定時分割日誌(本人使用的windows2012 r2)

blob.png

linux系統:

1.logcut.sh

#!/bin/sh

#定義日誌格式

Dateformat=`date +%Y%m%d`

#定義日誌目錄

Basedir="/application/nginx"

Nginxlogdir="$Basedir/logs"

#定義分割的日誌

Logname="access"

#判斷是否存在日誌文件

[ -d $Nginxlogdir ] && cd $Nginxlogdir||exit 1

[ -f ${Logname}.log ]||exit 1

#對原有的日誌文件進行修改

/bin/mv $Logname.log ${Dateformat}_$Logname.log

#從新生成nginx日誌

$Basedir/sbin/nginx -s reload

2.定時任務,實現功能。

crontab -l

#logs  cut

00 00  * * * sh /server/scripts/logcut.sh  &>/dev/null

相關文章
相關標籤/搜索