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
/nginx
reload >
/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/
-
type
f -mtime +10 |
xargs
rm
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...