Nginx日誌切割

2021-08-13 13:09:57 字數 1073 閱讀 8199

編輯指令碼

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=$sdk

# 以天為單位切分日誌

mv -f

$.log $_$.log

# 重新生成日誌檔案

pid_path="/usr/local/var/run/nginx.pid"

sudo kill -usr1 `cat $`

定時任務

切換到root身份

tianshl@tianshl nginx $ sudo su root
編輯 crontab
sh-3.2

# crontab -e

crontab 新增一行
00*

** sh /usr/local/var/log/nginx/nginx_log_division.sh

檢視是否新增成功
sh-3.2

# crontab -l

server 段增加以下**
if ($time_iso8601 ~ "(\d)-(\d)-(\d)")
日誌檔案路徑中增加日期引數
access_log /var/log/nginx/api-$time.log;
舉個栗子
events 

}}

栗子描述
1. 訪問/sdk時會生成當天時間的日誌檔案,當檔案存在時則追加內容,檔案不存在時自動建立。

2. 同理可以按年、月、日、小時、分鐘、秒等進行切分。

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日誌切割

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