Nginx日志切分

1.介绍

   nginx 产生的日志本身不提供切割功能,所以需要自己来实现.

2.配置

2.1 切割并压缩 vim cut_log.sh

cut_log()

{

    domain=$1

    # The Nginx logs path

    logs_path="/home/nginx_logs/"

    logs_name=${domain}'_access.log'

    now_time=$(date -d "${Time}" +%s)

    new_logs_name=${domain}'.'$now_time

    old_full_logs=${logs_path}${logs_name}

    new_full_logs=${logs_path}${new_logs_name}

    compress_log_name=$new_logs_name".tar.gz"

    TODAY=$(date +%F)

    LOG_DIR='/home/logs/'$TODAY

 

    [ -d $LOG_DIR ];mkdir -p $LOG_DIR

 

    mv $old_full_logs $new_full_logs

    kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

 

    cd $logs_path

 

    tar zcf $compress_log_name $new_logs_name

    md5=`/usr/bin/md5sum $new_logs_name.tar.gz |awk '{print $1}'`

    mv ${new_logs_name}'.'tar.gz ${new_logs_name}'.'$md5.tar.gz

    mv ${new_logs_name}'.'$md5.tar.gz $LOG_DIR

    rm -rf ${new_logs_name}

}

 

for name in s.ipd.com r.ipd.com

do

    cut_log $name

done

2.2 切割 vim cut_log.sh

#!/bin/bash
Time=$(date +%Y%m%d --date='-1 day')
logs_path="/home/tools/nginx-1.6.2/logs/"
logs_name="access.log"
new_logs_name=${logs_name}'_'$Time
old_full_logs=${logs_path}${logs_name}
new_full_logs=${logs_path}${new_logs_name}
mv $old_full_logs $new_full_logs
kill -USR1 `cat /home/tools/nginx-1.6.2/logs/nginx.pid`
find ${logs_path} -type f -ctime +7 -name "access.log_*" -exec rm -f {} \;

 

3. 编辑crontab定时任务

 5 0 * * * /home/shell/cut_log.sh > /dev/null 2>&1

转载于:https://my.oschina.net/guoenzhou/blog/394860

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值