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"
00 * * * 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 ...