上面給了乙個任務,說是每日nginx訪問日誌量都有幾個g,又不願意關閉訪問日誌。要實現nginx訪問日誌每日切片,並刪除7日前的日誌。
先寫乙個切片的cron.sh
檔案
#!/bin/bash
# description: rotate nginx access logs
# nginx程序的pid
ngx_pid=`cat /usr/local/nginx/logs/nginx.pid`
# nginx所在目錄
logs_dir="/usr/local/nginx"
# 日誌名
log_name="access"
cd $logs_dir
#移動日誌到新的目錄 並新檔案以日期命名
/usr/bin/mv $log_name ./logs/$(date +%f -d 'yesterday')_$log_name
#重啟nginx
/bin/kill -usr1 $ngx_pid
#刪除7天前的檔名帶有「log」的檔案
find $logs_dir/logs -type f -name "*log*" -mtime +7 -exec rm -rf {} \
然後,將檔案加入定時任務中 ,每日0時執行
echo "0 0 * * * /usr/local/nginx/cron.sh > /dev/null 2>&1" >> /var/spool/cron/root
Nginx 日誌切片 windows linux
nginx 預設不採用日誌切片進行日誌儲存,這樣就有乙個弊端 日誌檔案都放在同乙個檔案中,長時間執行後日誌檔案很大,可能達到幾個g,甚至十幾個g大小,檢視起來很不方便。為了解決這個問題就需要進行日誌切片,如每小時或者每天的日誌放在乙個單獨的檔案中。怎麼實現呢?windows 系統可通過簡單的配置實現...
Nginx 日誌配置 日誌切割
設定error log 日誌切割 前置文章 nginx 的配置檔案 nginx.conf nginx日誌對於統計 系統服務排錯很有用。nginx日誌主要分為兩種 access log 訪問日誌 和error log 錯誤日誌 通過訪問日誌我們可以得到使用者的ip位址 瀏覽器的資訊,請求的處理時間等資...
Nginx系列(八 nginx日誌)
remote addr,http x forwarded for 記錄客戶端ip位址 remote user 記錄客戶端使用者名稱 request 記錄請求的url和http協議 status 記錄請求狀態 body bytes sent 傳送給客戶端的位元組數,不包括響應頭的大小 該變數與apac...