天天看点

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)