Nginx日誌切割

2021-08-17 17:12:29 字數 733 閱讀 1307

由於 nginx 的日誌都是寫在乙個檔案當中的,因此,我們需要每天零點將前一天的日誌存為另外乙個檔案,這裡我們就將 nginx 位於 logs 目錄中的 access.log 存為 access_[yyyy-mm-dd].log 的檔案。其實 logs 目錄中還有個 error.log 的錯誤日誌檔案,這個檔案也需要每天切割乙個,在這裡就說 access.log 了,error.log 的切割方法類似。

#!/bin/bash  

# 零點執行該指令碼    

#nginx 日誌檔案所在的目錄  

logs_path=/usr/local/nginx/logs  

pid=`cat /usr/local/nginx/logs/nginx.pid`  

#獲取昨天的 yyyy-mm-dd  

yesterday=$(date -d 

"yesterday"

+%y-%m-%d)  

#移動檔案  

mv $/access.log $/access_$.log  

mv $/error.log $/error_$.log  

#向 nginx 主程序傳送 usr1 訊號。usr1 訊號是重新開啟日誌檔案  

kill -usr1 $pid 

使用 crontab -e 新增乙個定時任務,在其中增加執行這個指令碼:00

* * * /bin/bash /usr/local/nginx/sbin/cut-log.sh  

nginx日誌切割

web 訪問日誌 access log 記錄了所有外部客戶端對web伺服器的訪問行為,包含了客戶端ip,訪問日期,訪問的url資源,伺服器返回的http狀態碼等重要資訊。一條典型的web訪問日誌如下 規劃 1 要解決問題 2 nignx沒有自動分開檔案儲存日誌的機制。由於nginx它不會幫你自動分檔...

nginx 日誌切割

直接在nginx配置檔案中,配置日誌迴圈,而不需使用logrotate或配置cron任務。需要使用到 time iso8601 內嵌變數來獲取時間。time iso8601格式如下 2015 08 07t18 12 02 02 00。然後使用正規表示式來獲取所需時間的資料。使用下面的 塊 1 2 3...

Nginx日誌切割

編輯指令碼tianshl tianshl nginx vim nginx log division.sh指令碼內容 bin sh 昨天日期 yesterday date v 1d y m d 日誌目錄 log path usr local var log nginx sdk日誌路徑 sdk path...