5、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日誌切割和刪除