码迷,mamicode.com
首页 > 其他好文 > 详细

nginx按日分割日志

时间:2017-11-14 14:08:26      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:data   ash   names   server   目录   环境   bash   初始化   根据   

#!/bin/bash
#按日切割nginx日志并压缩,加入crontab每天0:00切割
#作者:fafu_li
#邮箱:fafu_li@live.com & 348926676@qq.com
#时间:2015.08.15

source /etc/profile        #加载系统环境变量
source ~/.bash_profile    #加载用户环境变量
set -o nounset             #引用未初始化变量时退出
set -o errexit            #执行shell命令遇到错误时退出

PID="/usr/local/nginx/logs/nginx.pid"    #pid目录
NGINX="/usr/local/nginx/sbin/nginx"
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)    #昨天日期
LOGS_PATH="/data/nginx/logs"    #日志目录
server_names=("access_chaoneng")    #日志名
server_count=${#server_names[@]}

#分割日志
cut_logs(){
        local name=$1
        cd $LOGS_PATH
        /bin/mv -f ${name}.log  ${name}.${YESTERDAY}.log
        #向nginx主进程发送 USR1 信号,USR1 信号是重新打开日志文件
        #不然nginx主进程写入的还是移动后的日志文件
        #三种方式,根据需求使用任意一种
        #service nginx reload
        #kill -USR1 $(cat $PID)
        $NGINX -s reload
        tar zcf ${name}.${YESTERDAY}.log.gz ${name}.${YESTERDAY}.log
        rm -rf ${name}.${YESTERDAY}.log
}

#循环分割日志
for (( i = 0; i < $server_count; i++ )); do
        cut_logs ${server_names[$i]}
done

 

nginx按日分割日志

标签:data   ash   names   server   目录   环境   bash   初始化   根据   

原文地址:http://www.cnblogs.com/leffss/p/7832123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!