1. 程式人生 > >5、nginx日誌切割和刪除

5、nginx日誌切割和刪除

nginx 日誌切割

5、Nginx日誌切割和日誌定期刪除


LogDir=/data/logs/nginx #日誌存放目錄

LogDate=`date +%Y%m%d` #日誌名稱後綴


KeepLogDays=30 #保留的天數(看自己的需求)


DelDate=`date -d "-${KeepLogDays} days" +%Y%m%d` #當前時間的前三十天時間戳(是一個具體的日期)

(-d參數是刪除 語法:date -d 3days 雙引號引用的話中間可以有空格 否則會報錯)

(+%Y%m%d參數是打印日期的格式 語法:date +%Y%m%d )


Logs=`ls -l /data/logs/nginx/*.log|awk -F‘/‘ ‘{print $NF}‘` #日誌存放目錄下以.log結尾的日誌名稱


[ -d $LogDir/$LogDate ] || mkdir $LogDir/$LogDate #判斷日誌存放目錄下當前時間戳的是否為目錄 沒有的話新建目錄


for i in $Logs;

do

if [ -f $LogDir/$i ];then

touch $LogDir/$LogDate/$i

ln -sf $LogDir/$LogDate/$i $LogDir/$i

fi

done

#把所有的Logs都新建在當前時間戳的目錄裏面,並且在上層目錄下建立軟鏈文件


kill -USR1 `cat /DIR/nginx.pid`#你的nginx.pid存放路徑 看配置文件


if [ x$KeepLogDays != x0 ];then

rm -rf $LogDir/$DelDate

fi

#變量KeepLogDays不為零的時候刪除DelDate變量代表


PS:把這個腳本寫成定時任務,每天00:00執行一次即可

本文出自 “10620401” 博客,請務必保留此出處http://10630401.blog.51cto.com/10620401/1932892

5、nginx日誌切割和刪除