Nginx 日誌自動分割指令碼

2022-09-02 08:24:09 字數 1612 閱讀 1082

1、分割指令碼:cut_nginx_logs.sh

#!/bin/bash

#cut_nginx_logs.sh

#author xingxiudong

#set the path to nginx log files

log_files_path="/var/log/nginx"

#set nginx log files you want to cut

project_name=mmt

log_files_name=nginx_access_mmt

log_files_dir=$/bck/$/$(date -d "yesterday" +"%y")/$(date -d "yesterday" +"%m")

set the path to nginx.

nginx_sbin="/etc/init.d/nginx"

############################################

#please do not modify the following script #

############################################

mkdir -p $log_files_dir

#log_files_num=$

#cut nginx log files

mv $/$.log $/$_$(date -d "yesterday" +"%y%m%d")_$(date +"%y%m%d%h%m%s").log

kill -usr1 $(cat /var/run/nginx.pid)

$nginx_sbin force-reload

2、準備定時執行檔案:cron_cur_nginx_logs

1 0 * * * /home/mmt/cut_nginx_logs.sh

3、修改分割指令碼檔案執行許可權

sudo chmod 777 /home/mmt/cut_nginx_logs.sh

4、加入cron守護程序

sudo crontab /home/mmt/cron_cur_nginx_logs

一日,領導要在windows機器上出每日nginx訪問日誌,無奈寫了乙個:

taskkill /f /im nginx.exe

set "cmd_zszy=move f:\nginx-access_log\zszy\logs\zszy.log f:\nginx-access_log\zszy\logs\zszy.%date:~0,4%-%date:~5,2%-%date:~8,2%.log

call %cmd_zszy%"

start nginx

儲存後把這個批處理檔案放到nginx根目錄下,在windows下新增乙個任務計畫,每天執行一次即可.該批處理一共做了三件事,先殺掉系統中正在執行的nginx程序,然後備份並根據時間重新命名日誌檔案,最後再啟動nginx服務。

經過測試,在windows下面必須在nginx服務停止的情況下才能備份日誌,這個有點小小的遺憾,不過一般情況下這個備份過程會在1到2秒內完成,把這個批處理放到每天凌晨執行,基本不影響nginx提供服務。

nginx日誌分割指令碼

此文件只針對linux分割nginx日誌 nginx日誌不自動帶日誌分割功能,需要自己寫指令碼分割日誌,並加入到每日任務中,定期分割 儲存 刪除日誌 此指令碼包括,日誌分割 儲存 刪除 重建日誌檔案 bin bash date y m d h m s year date y month date m...

Nginx 日誌自動分割

nginx 的日誌都是寫在乙個檔案當中的,不會自動地進行切割,如果訪問量很大的話,將導致日誌檔案容量非常大,不便於管理和造成nginx 日誌寫入效率低下等問題。所以,往往需要要對access log error log日誌進行切割。切割日誌一般利用usr1訊號讓nginx產生新的日誌。例項 123 ...

nginx日誌分割小指令碼

nginx的日誌一直是寫在乙個檔案上面,執行久了之後檔案會非常大,因此我們有必要對nginx的日誌進行分割 12 3456 78910 11 bin bash access log data nginx www.log error log data nginx error.log yesterday...