linux下nginx日誌按天分割

2021-10-04 01:23:19 字數 1439 閱讀 8058

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

1、將日誌檔案備份到/usr/local/nginx/logs/historylog目錄下,備份的檔名稱是access_yyyymmdd.log和error_yyyymmdd.log。

1.建立nginx_logs.s**件,並授予執行許可權。

chmod  +x  nginx_logs.sh
2.備份指令碼

#!/bin/bash

# this script run at 00:00

# the nginx logs path

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

logpath="/usr/local/nginx/logs/"

#建立備份目錄 如2020/03

mkdir -p $$(date -d "yesterday" +"%y")/$(date -d "yesterday" +"%m")/

#將日誌移動到上面的目錄中

mv $access.log $$(date -d "yesterday" +"%y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%y%m%d").log

mv $error.log $$(date -d "yesterday" +"%y")/$(date -d "yesterday" +"%m")/error_$(date -d "yesterday" +"%y%m%d").log

#主要用到nginx的-usr1訊號,usr1 : reopen the log files 向nginx主程序傳送訊號以重新開啟日誌

kill -usr1 `cat $nginx.pid`

3.建立日誌備份的目錄,切換到/usr/local/nginx/logs下

mkdir historylog
2、通過crontab命令設定,秒 分 時 日 月 周1、設定定時任務 "crontab -e"

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

2.先手動執行nginx_logs.sh

按天切割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實現日誌按天切割

nginx的日誌檔案沒有rotate功能。一段時間過後,日誌將越發臃腫,乙個accesslog很快就突破1g,因此有必要通過指令碼實現按天切割日誌。1 重新命名日誌檔案,如更改為access yyyymmdd.log,需注意的是nginx通過檔案描述符定位日誌檔案,因此在重新命名之後還是能往該檔案內...

Linux 下nginx 日誌按天分隔處理

nginx 的日誌有2個檔案,分別為訪問日誌 access.log 和錯誤日誌 error.log 訪問日誌會隨著訪問量的增加極速的變大,而且在一些雲服務的負載均衡下,後台內網也會不停的有訪問記錄,例如阿里雲 不知道在阿里雲後台有沒有設定的地方,沒去研究 而當訪問日誌太大,就會導致伺服器效能降低。思...