nginx日誌切割壓縮儲存

2021-09-22 19:41:35 字數 988 閱讀 8581

nginx每天會產生大量的訪問日誌,而且有些要求保留幾個月的日誌以便分析,如果不加入自動切割壓縮,儲存空間很快會被撐爆

下面用shell指令碼配合計畫任務crontab對nginx日誌進行自動切割壓縮

vim cut_nginx_log.sh

#!/bin/bash

year=`date +%y`

month=`date +%m`

day=`date +%d`

rq=`date +%y%m%d`

pid_path="/software/nginx/logs/nginx.pid"

logs_backup_path="/software/nginx/logs/$year$month"

logs_path="/software/nginx/logs/"

logs_access="1.access.log 2.access.log 3.access.log 4.access.log 5.access.log" #nginx**多個專案,每個專案日誌儲存到不同日誌檔案,所以分開寫

[ -d $logs_backup_path ]||mkdir -p $logs_backup_path #按月命名建立資料夾

for i in $ #for迴圈去處理上面每個專案的日誌檔案

do mv $$ $/$.$ #把日誌移到相應月份資料夾去處理

tar -zcvf $/$.$.tar.gz $/$.$ #壓縮日誌節省儲存空間

rm -rf $/$.$ #刪除處理完的日誌

done

echo "done"

把上面指令碼賦予執行許可權然後加入計畫任務,每天凌晨執行處理

chmod +x cut_nginx_log.sh

crontab -e  =>  00 00 * * * /bin/bash /software/nginx/logs/cut_nginx_log.sh

crontab -l  =>  檢視計畫任務

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...