nginx日誌主要分為兩種:
access_log(訪問日誌)和error_log(錯誤日誌)。
通過訪問日誌我們可以得到使用者的ip位址、瀏覽器的資訊,請求的處理時間等資訊。錯誤日誌記錄了訪問出錯的資訊,可以幫助我們定位錯誤的原因。
可以應用access_log指令的作用域分別有http,server,location,limit_except。也就是說,在這幾個作用域外使用該指令,nginx會報錯。
access_log /usr/local/nginx/logs/www.nginx.log不指定則使用nginx.conf裡面,預設 log_format 格式
我們開啟nginx.conf定位到log.format,配置
';指定使用該格式
分割,打包,刪除歷史,日誌
新增shell指令碼 nginx-logs-rotate.sh
#!/bin/bash加入crontab定時任務# description: rotate nginx access logs
logfile="
/usr/local/nginx/cron/cron.log
"#分割和打包日誌檔案
ngx_pid=`cat /usr/local/nginx/logs/nginx.pid`
logs_dir="
/usr/local/nginx/logs
"#nginx預設log目錄
www_log_name="
www.nginx.log
"#nginx預設log的名稱
access_log_name="
access.log
"error_log_name="
error.log
"place_dir="
/usr/local/nginx/logs/place/
"#nginx分割後log存放目錄
log1="
$(date +%f -d 'yesterday')_$www_log_name
"#nginx分割後log的名稱
log2="
$(date +%f -d 'yesterday')_$access_log_name
"log3="
$(date +%f -d 'yesterday')_$error_log_name
"#分割
cd $logs_dir
mv$www_log_name $place_dir$log1
mv$access_log_name $place_dir$log2
mv$error_log_name $place_dir$log3
/bin/kill -usr1 $ngx_pid
#打包if [[ $? == 0 ]]; then
cd $place_dir
tar czvf $(date +%f -d '
yesterday
').tar.gz $log1 $log2 $log3 >>$logfile #判斷是否成功,則壓縮。
echo
"$log1 successful!
" >>$logfile
rm -f $log1
rm -f $log2
rm -f $log3
else
echo
"fail!
" >>$logfile
fi#刪除歷史日誌
keeptime=1
#定義需要刪除的檔案距離當前的天數
delfile=`find $place_dir -type f -mtime +$keeptime -exec ls
{} \;` #找到天數大於多少天的檔案
for delfile in
$ #迴圈刪除滿足天數大於多少天的檔案
dorm -f $delfile
done
crontab -e
0分割前的日誌0 * * * /usr/local/nginx/cron/nginx-logs-rotate.sh
分割後打包的日誌
Windows下nginx定時分割日誌
nginx大多是在linux環境下使用,nginx的日誌分割在linux也好實現。我現在在windows環境下執行nginx,要做日誌分割。但是在網上找了一圈,大多是需要借助unxutils這個工具來獲取前一天的時間。其實在windows環境下,可以用vb指令碼來實現獲取前一天時間的功能。下面是我的...
nginx日誌分割(linux定時器定時分割)
nginx安裝目錄下的logs資料夾下,主要有三個檔案,access.log,error.log,nginx.pid。其中access.log和error.log是nginx的預設日誌檔案,如果沒有配置策略,nginx一直跑,這兩個檔案會變得越來越大,不易管理。因此可以將日誌檔案進行分割,乙個月分割...
linux配置nginx定時日誌分割
指令碼內容 bin sh program auto cut nginx log script.nginx日誌路徑 today date d today y m d 移動日誌並改名 mv error.log error log mv access.log access log 向nginx主程序傳送重...