天天看點

nginx shell腳本日志切割

#!/bin/bash
#每日分割nginx日志
#避免日志檔案過大
#日志是淩晨處理前一天的資料,是以日期擷取前一天

#待處理目錄
logpath=/data/logs/

#前一天所在年
year=`date -d '1 days ago' +%Y`
#前一天所在月
month=`date +%m`
#前一天所在日
day=`date +%d`
#備份目錄
logbakpath=/data/logsbak/$year/$month

#判斷備份目錄是否存在
if [ ! -d "$logbakpath" ]
then
        mkdir -p "$logbakpath"
fi

#進入待處理目錄
cd ${logpath}
#讀取所有日志檔案
logs=$(ls)

for log in $logs
do
        mv $log $logbakpath/$day.$log
done

#向Nginx主程序發送USR1信号,重新打開日志檔案
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)