nginx實現日誌按天切割

2022-01-29 15:55:11 字數 910 閱讀 5236

nginx的日誌檔案沒有rotate功能。一段時間過後,日誌將越發臃腫,乙個accesslog很快就突破1g,因此有必要通過指令碼實現按天切割日誌。

1  重新命名日誌檔案,如更改為access_yyyymmdd.log,需注意的是nginx通過檔案描述符定位日誌檔案,因此在重新命名之後還是能往該檔案內寫入內容。

2  向nginx主程序傳送usr1訊號。

nginx的master程序接到訊號後:

重新從配置檔案中讀取日誌檔名 -> 關閉重名日誌檔案 -> 建立並開啟日誌檔案(原來的名稱) -> 通過worker程序作出改變

a. nginx日誌按日期自動切割指令碼

#日誌檔案存放目錄

logs_path="

/usr/local/nginx/logs/

"# pid檔案

pid_path="

/usr/local/nginx/nginx.pid

"#重新命名日誌檔案

mv $access.log $access_$(date -d "

yesterday

" +"

%y%m%d

").log

#向nginx主程序傳送訊號以重新開啟日誌

kill -usr1 `cat $

儲存為 cut-log.sh,

b. 設定定時任務 "crontab -e"

0

0 * * * bash /usr/local/nginx/nginx_log.sh

將於每天凌晨0點0分將nginx日誌重新命名為昨天的日期格式,並重新生成今天的新日誌

通過apache的rotate程式 + 命名管道的方式

按天切割nginx訪問日誌

1.新建切割日誌指令碼vi usr local nginx cut nginxlog.sh bin bash 日誌檔案存放目錄 logs path usr local nginx logs pid檔案 pid path usr local nginx nginx.pid 重新命名日誌檔案 mv ng...

nginx按小時切割日誌

有的日誌比較大,一天的日誌就有200g一台機器,如果按天切割日誌,檔案太大了,需要按小時切割日誌。下面講述乙個按小時切割日誌的方法,通過apache的cronolog來完成日誌的切割。1 首先安裝日誌切割 yum install httpd 2 配置nginx的日誌落地檔名,比如 opt log a...

apache下實現按天記錄日誌切割

apache作為web伺服器,弱長時間執行,會導致日誌檔案累計過大,進而影響問題定位效率,需要修改apache的httpd.conf配置檔案,實現按天記錄日誌。在配置檔案中找到,並注釋 errorlog logs error log customlog logs access log common ...