Nginx 日誌切片 windows linux

2021-10-24 01:49:10 字數 1216 閱讀 4000

nginx 預設不採用日誌切片進行日誌儲存,這樣就有乙個弊端:日誌檔案都放在同乙個檔案中,長時間執行後日誌檔案很大,可能達到幾個g,甚至十幾個g大小,檢視起來很不方便。為了解決這個問題就需要進行日誌切片,如每小時或者每天的日誌放在乙個單獨的檔案中。怎麼實現呢?windows 系統可通過簡單的配置實現按日期儲存,linux 的總體思路是:設定乙個定時任務,每隔一段時間將日誌檔案備份後,告訴nginx 重新開啟日誌檔案。

server )-(\d)-(\d)") 

access_log logs/$year-$month-$day-access.log;

......

}

1、新建shell指令碼:

vi   /opt/nginx/nginx_log.sh
#!/bin/bash

## 零點執行該指令碼

## nginx.pid所在目錄

declare pid_path="/usr/local/nginx/logs/nginx.pid"

## nginx 日誌檔案所在的目錄

declare logs_path="/usr/local/nginx/logs"

## 獲取昨天的 yyyy-mm-dd

declare yesterday=$(date -d last-day +%y%m%d)

## 刪除7天之前的日誌

rm -rf $/access_$(date -d "7 days ago" "+%y%m%d").log

## 執行mv操作

mv $/access.log $/access_$.log

## 向 nginx 主程序傳送 usr1 訊號。usr1 訊號是重新開啟日誌檔案

kill -usr1 `cat $`

2、授權執行 chmod 777 nginx_log.sh

3、./ nginx_log.sh 執行指令碼若提示如下

原因可能是 檔案的格式是dos,修改為unix,具體操作步驟如下

4、建立定時任務執行,執行命令crontab -e新增如下作業(每天凌晨執行)

0 0 * * * ./opt/nginx/nginx_log.sh

nginx日誌切片

上面給了乙個任務,說是每日nginx訪問日誌量都有幾個g,又不願意關閉訪問日誌。要實現nginx訪問日誌每日切片,並刪除7日前的日誌。先寫乙個切片的cron.sh檔案 bin bash description rotate nginx access logs nginx程序的pid ngx pid ...

window下nginx服務操作

windows下nginx的啟動 停止等命令 在windows下使用nginx,我們需要掌握一些基本的操作命令,比如 啟動 停止nginx服務,重新載入nginx等,下面我就進行一些簡單的介紹。1 啟動 c server nginx 1.0.2 start nginx 或c server nginx...

window配置nginx的相關

windows關閉nginx服務需要在任務管理器關閉 windows修改conf檔案後需要在任務管理器中關閉nginx相關程序,然後再啟動 檢視nginx的版本號 nginx v 啟動nginx start nginx 快速停止或關閉nginx nginx s stop 正常停止或關閉nginx n...