阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx日志分割脚本

190次阅读
没有评论

共计 2709 个字符,预计需要花费 7 分钟才能阅读完成。

Nginx 日志分割,可以分割一年内没有分割的日志,以每天一个日志文件打包。

#!/bin/bash
#hls_nginx_log_cut.sh
#by Louis 2016/10/10
logs_path=’/data/store/logs/www/’
# 日志文件所在路径
files=`ls $logs_path`
backup_path=’/data/store/backuplogs/’
# 备份存放目录
month_array=(`date +%b` `date -d ‘1 month ago’ +%b`)
# 当前月份和上月月份
current_year=`date +%Y`
# 当前年份
current_date=`date +%Y_%m_%d`
# 当前日期
check_dir(){
[! -d $backup_path] && mkdir $backup_path
}
trans_month(){
    case $1 in
        Jan) return 01;;
        Feb) return 02;;
        Mar) return 03;;
        Apr) return 04;;
        May) return 05;;
        Jun) return 06;;
        Jul) return 07;;
        Aug) return 08;;
        Sep) return 09;;
        Oct) return 10;;
        Nov) return 11;;
        Dec) return 12;;
    esac
}
# 英文月份转换为数字月份,nginx 日志中有两种日期,所以需要转换
cut_history_logs(){
    day=$1
    for month in ${month_array[@]}
    do
        trans_month $month
        digit_month=`printf “%02d” $?`
        format_day=`printf “%02d” $day`
        dir_name=${current_year}_${digit_month}_${format_day}
        for file in $files
        do
            count=`awk ‘/’$format_day’\/’$month’\/’$current_year’|’$current_year’\/’$digit_month’\/’$format_day’/’ ${logs_path}${file}|wc -w`
            #统计配到的设定日期的记录数量,如果 count= 0 就跳到下一个文件
            if [[$count != 0 && $current_date != $dir_name]];then
            [! -d /tmp/${dir_name} ] && mkdir /tmp/${dir_name}
            awk ‘/’$format_day’\/’$month’\/’$current_year’|’$current_year’\/’$digit_month’\/’$format_day’/’ ${logs_path}${file}>>/tmp/${current_year}_${digit_month}_${format_day}/$file
            sed  -ri ‘/’$format_day’\/’$month’\/’$current_year’|’$current_year’\/’$digit_month’\/’$format_day’/d’ ${logs_path}${file}
            fi
        done
        [-d /tmp/${dir_name} ] && {
        cd /tmp/${dir_name}
        tar czf /${backup_path}/${current_year}_${digit_month}_${format_day}_nginx.tar.gz *
        rm -rf /tmp/${dir_name}
        }
    done           
}
tar_logs(){
    for day in {1..31}
    do
        cut_history_logs $day
    done
}
check_dir
tar_logs
/usr/local/nginx/sbin/nginx -s reload

下面关于 Nginx 的文章您也可能喜欢,不妨参考下:

Nginx 403 forbidden 的解决办法  http://www.linuxidc.com/Linux/2017-08/146084.htm

CentOS 7 下 Nginx 服务器的安装配置  http://www.linuxidc.com/Linux/2017-04/142986.htm

CentOS 上安装 Nginx 服务器实现虚拟主机和域名重定向  http://www.linuxidc.com/Linux/2017-04/142642.htm

CentOS 6.8 安装 LNMP 环境(Linux+Nginx+MySQL+PHP)http://www.linuxidc.com/Linux/2017-04/142880.htm

Linux 下安装 PHP 环境并配置 Nginx 支持 php-fpm 模块  http://www.linuxidc.com/Linux/2017-05/144333.htm

Nginx 服务的 SSL 认证和 htpasswd 认证  http://www.linuxidc.com/Linux/2017-04/142478.htm

Ubuntu 16.04 上启用加密安全的 Nginx Web 服务器  http://www.linuxidc.com/Linux/2017-07/145522.htm

Linux 中安装配置 Nginx 及参数详解  http://www.linuxidc.com/Linux/2017-05/143853.htm

Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm

CentOS 7.2 下 Nginx+PHP+MySQL+Memcache 缓存服务器安装配置  http://www.linuxidc.com/Linux/2017-03/142168.htm

CentOS6.9 编译安装 Nginx1.4.7  http://www.linuxidc.com/Linux/2017-06/144473.htm

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-10/147733.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2709字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中