nginx日誌分割(linux定時器定時分割)

2021-08-21 12:52:00 字數 1795 閱讀 4302

nginx安裝目錄下的logs資料夾下,主要有三個檔案,access.log,error.log,nginx.pid。

其中access.log和error.log是nginx的預設日誌檔案,如果沒有配置策略,nginx一直跑,這兩個檔案會變得越來越大,不易管理。因此可以將日誌檔案進行分割,乙個月分割一次,或一天分割一次。

主要技術:shell + linux定時器 + nginx日誌檔案重開

主要實現:每隔1分鐘,將access檔案重新生成乙個檔案,儲存在乙個生成的資料夾下。

主要用到nginx的-usr1訊號

usr1 : reopen the log files 重新開啟日誌檔案

kill -usr1 `cat /usr/local/nginx/logs/nginx.pid`
通過crontab命令設定,秒 分 時 日 月 周

crontab -e
我們這裡設定為

*/1 * * * * sh /opt/log/s.sh
#! /bin/bash

base_path='/usr/local/nginx/logs'

log_path=$(date -d yesterday +"%y%m")

minute=$(date -d "1 minute ago" +"%y%m%d-%h:%m")

mkdir -p $base_path/$log_path

echo $base_path/access.log

mv $base_path/access.log $base_path/$log_path/access_$minute.log

echo $base_path/$log_path/access_$minite.log

kill -usr1 `cat /usr/local/nginx/logs/nginx.pid`

寫shell指令碼最為重要的就是注意空格,換行。不然很容易出現莫名其妙的錯誤。

按照上面設定好了之後,每個1分鐘,會生成乙個日誌檔案

-rw-r--r-- 1 nobody root 4248 jul 17 22:01 access_20180717-22:00.log

-rw-r--r-- 1 nobody root 6136 jul 17 22:02 access_20180717-22:01.log

-rw-r--r-- 1 nobody root 6136 jul 17 22:03 access_20180717-22:02.log

-rw-r--r-- 1 nobody root 6136 jul 17 22:04 access_20180717-22:03.log

-rw-r--r-- 1 nobody root 6136 jul 17 22:05 access_20180717-22:04.log

-rw-r--r-- 1 nobody root 5900 jul 17 22:07 access_20180717-22:06.log

-rw-r--r-- 1 nobody root 5782 jul 17 22:08 access_20180717-22:07.log

-rw-r--r-- 1 nobody root 5782 jul 17 22:09 access_20180717-22:08.log

-rw-r--r-- 1 nobody root 6254 jul 17 22:10 access_20180717-22:09.log

linux下 Nginx日誌分割

linux下 nginx日誌分割 廢話不多說,直接上 bin bash 間隔1天執行該指令碼 nginx 日誌檔案所在的目錄 logs path usr local nginx logs nginx 日誌檔案生成後的目錄 newlogs path home wwwlogs 獲取昨天的 yyyy mm...

nginx日誌分割

以下這個指令碼實施的核心是 每天凌晨將日誌檔案壓縮並移動到相應的年份月份目錄下,然後重新生成日誌檔案,同時記錄日誌 bin bash logs path home wwwlog 日誌存放位置 year date y 年份 month date m 月份 day date y m d 日期 time ...

Nginx 日誌分割

usr bin bash 日誌檔案存放目錄 logs path var log nginx nginx程序pid nginx pid cat var run nginx.pid 日誌名稱 logs name date d yesterday y m d 改名 mv logs path access....