nginx日誌切割

2021-09-20 23:40:16 字數 1362 閱讀 7620

1. 編輯指令碼

說明:date -d "-1 day" 表示昨天; %f表示年月日以y%-m%-d形式;[-d ]表示判斷是否有這個目錄,如果沒有就或關係,建立該目錄;將每日的access.log檔案挪到建立的目錄/tmp/nginx_log/中,並命名為d變數的格式;reload用於重新生成acces.log,並重定向清空;考慮到切割的日誌比較大,gzip -f判斷日誌是否存在,如果存在,則進行強制壓縮(如果一天執行多次,該檔案已經存在並壓縮過,則會同名,-f覆蓋不提示)

vim /usr/local/sbin/nginx_logrotate.sh

12

3

4

5

6

7

8

#! /bin/bash

# author by huangzhenping

d=`date-d"-1 day"+%f`

[ -d/tmp/nginx_log] ||mkdir/tmp/nginx_log

mv/tmp/access.log/tmp/nginx_log/$d.log

/etc/init.d/nginxreload >/dev/null

cd/tmp/nginx_log/

gzip-f $d.log

2. 日誌切割指令碼加入crond任務計畫列表

10 0 * * */bin/bash/usr/local/sbin/nginx_logrotate.sh

3. 定期刪除日誌,crond計畫列表

10 0 * * *find/tmp/nginx_log/-typef -mtime +10 |xargsrm

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