1. 程式人生 > >nginx實現自動切割日誌檔案shell指令碼

nginx實現自動切割日誌檔案shell指令碼

在工作中可能會需要對nginx的日誌實現自動分割,自己寫了一個函式,大家如果覺得可以的話:
可以直接複製儲存修改一下nginxPATH和 /opt/nginx/sbin/nginx -s reopen這兩個地方 地址。然後直接使用。

#!/bin/bash
#引數解釋:$1  切割日誌的大小,數字型別,單位為:m。 
#引數解釋:$2 切割日誌的檔名稱:access正確日誌 error錯誤日誌,可自定議為自己的日誌檔名稱。
function nginxLogReopen(){
        nginxPATH='/opt/nginx/logs';
        nginxPathNew=`date +%Y%m%d%H%M%S`;
        #獲取nginx日誌檔案大小
        nginxLogCount=`wc -c $nginxPATH/$2.log  | awk '{print $1}'`
        #計算最大的值
        nginxMaxCount=$(($1*1024))
        if [ $nginxLogCount -gt $nginxMaxCount ];then
                mv $nginxPATH"/"$2".log"  $nginxPATH"/$2"$nginxPathNew".log";
                touch $nginxPATH"/"$2".log"
                /opt/nginx/sbin/nginx -s reopen
        fi
}
nginxLogReopen 2 'error'

後期將完善更多的shell指令碼,希望大家喜歡。。。。