Nginx實現大日誌檔案切割

2021-09-30 09:41:03 字數 1470 閱讀 3716

方式一:

nginx cronolog日誌分割配置文件,根據下面方法,每分鐘分割一次nginx訪問日誌。

1.nginx日誌配置

access_log access_log /data/access_log_pipe main;

2.先建立乙個命名管道

mkfifo /www/log/access_log_pipe

3.配置cronolog:

nohup cat /data/access_log_pipe | /usr/local/sbin/cronolog /data/log/domain.access_%y%m%d%h%m.log &

4.啟動nginx

/usr/local/nginx/sbin/nginx

注意:cronolog必須在nginx啟動前啟動

沒有安裝cronolog的話,需要先安裝

wget

tar zxvf cronolog-1.6.2.tar.gz

cd cronolog-1.6.2

./configure

make

make install

方式二:

定時任務中每小時新增定時任務,執行一下指令碼,可以實現小時日誌分割

log_dir="/var/log/nginx"

date_dir=`date +%y/%m/%d/%h`

/bin/mkdir -p $/$ > /dev/null 2>&1

/bin/mv $/access.log   $/$/access.log

kill -usr1 `cat /opt/nginx/logs/nginx.pid`

方式三:

logrotate看名字就知道是專門做日誌輪詢的,只把任務配置放在/etc/logrotate.d/下,任務就會自動完成,而且無需安裝,系統自帶,比較推薦使用. 

vi /etc/logrotate.d/nginx  

/usr/local/nginx/logs/www.willko.cn.log /usr/local/nginx/logs/nginx_error.log

多個日誌以空格分開, 

notifempty 如果日誌為空則不做輪詢 

daily 每天執行一次 

postrotate 日誌輪詢後執行的指令碼 

這樣,每天都會自動輪詢,生成nginx.log.1-n  

後話:2868 access_201112182030.log

7777 access_201112182031.log

7626 access_201112182032.log

7873 access_201112182033.log

3530 access_201112182034.log

29674 total

並沒有因為切分檔案而丟失日誌。

nginx 切割日誌檔案

1.首先編寫shell指令碼 cutlog.sh 放入nginx logs資料夾中 首先定義路徑變數 logs path usr local nginx logs 獲取昨天的 yyyy mm dd d date y m d 移動檔案 mv access.log log 向 nginx 主程序傳送 u...

Nginx 日誌檔案切割

阿里雲的nginx好久沒檢視過日誌,現在需要配置定時任務實現,日誌檔案切割,並刪除超過30天的日誌檔案。log.sh 指令碼檔案 bin bash 獲取當前時間 yyyy mm dd hh mm ss 格式 nowtime date y m d h m s cd usr local nginx mv...

nginx日誌檔案切割

建立指令碼logcut.sh,放到 opt nginx sbin下 在windows下編輯,可以把dos轉unix格式 bin bash 零點執行該指令碼 nginx 日誌檔案所在的目錄 logs path opt nginx logs 獲取昨天的 yyyy mm dd yesterday date...