Nginx日志轮询切割

Nginx日志轮询切割

默认情况下,Nginx会把所有的访问日志生成到一个指定的访问日志文件access*.log里,但这样一来,时间长了就会导致日志单个文件很大,不利于日志的分析和处理,因此有必要对Nginx日志按天或者按小时等进行分割,具体要看具体线上业务,使其分成不同的文件保存。这里我们按天进行切割日志。

1.配置日志切割脚本,具体如下:

[[email protected] ~]# mkdir -p /server/scripts/

[[email protected] ~]# cd /server/scripts/

[[email protected] scripts]# vim cut_nginx_log.sh

#!/bin/bash

#---------------------------------------

#Author:jeff

#date:2016-06-07

#Function:cut nginx logs every day

#Version:1.0

#---------------------------------------

#定义相关变量

Nginx_Dir=/usr/local/nginx

Nginx_Log_Dir=${Nginx_Dir}/logs

Date=`date +%Y%m%d`

Date3Ago=`date +%Y%m%d -d "3 days ago"`

Nginx_Cmd=${Nginx_Dir}/sbin/nginx

#对日志进行切割

[ -d ${Nginx_Log_Dir} ] && cd ${Nginx_Log_Dir} || exit 1

for log_name in access_www access_blog access_bbs

do

/bin/mv ${log_name}.log ${log_name}_$Date.log

done

${Nginx_Cmd} -s reload

#对3天前日志文件进行打包压缩,并只保留15天的日志

for log_name in access_www access_blog access_bbs

do

[ -f ${log_name}_${Date3Ago}.log ] && \

/bin/tar -zcf ${log_name}_${Date3Ago}.tar.gz ${log_name}_${Date3Ago}.log && \

/bin/rm -f ${log_name}_${Date3Ago}.log

/bin/find ${Nginx_Log_Dir} -name "${log_name}_*.tar.gz" -mtime 15 -exec rm -f {} \;

done

2.将此脚本保存后加入服务器端的定时任务配置里,让脚本在每天凌晨0点执行,就可以实现日志的

每天分割功能,具体如下:

[[email protected] scripts]# crontab -e

#!/bin/bash

# cut nginx log by every day

0 0 * * * /bin/sh /server/script/cut_nginx_log.sh >/dev/null 2>&1

3.最终日志切割如图所示

时间: 2024-10-20 20:59:31

Nginx日志轮询切割的相关文章

nginx日志轮询切割实战

apache切割工具: cronlog 和rotare等日志切割工具 nginx切割工具有: nginx cron+x    scripts [[email protected] ~]# mkdir -p /server/scripts [[email protected] ~]# cd /server/scripts/ [[email protected] scripts]# vim cut_nginx_log.sh #vim输入如下内容 cd /application/nginx/logs

Nginx的继续深入(日志轮询切割,重写,负载均衡等)

Nginx的访问日志轮询切割 通常什么情况Nginx会把所有的访问日志生成到一个制定的访问日志文件access.log里面,但时间一长,日志个头很大不利于日志的分析和处理. 有必要对Nginx日志进行按天或按小时进行切割,分成不同的文件保存. [[email protected] logs]#cat /server/script/cut_nginx_log.sh#!/bin/shDataformat = `date +%Y%m%d`Basedir = "/usr/local/nginx"

nginx 日志轮询脚本

nginx 日志轮询脚本      nginx 没有自带日志轮询功能, 这个脚本必须配合crontab来实现日志的按天轮询.生产环境使用下还是很靠谱和方便,推荐给大家使用.  里面具体的内容大家自己看把有点shell基础就能明白的.  crontab -e 00 08 * * * /bin/bash /opt/scripts/BackupNginxLog.sh BackupNginxLog.sh #!/bin/bash LogPath=/usr/local/logs_nginx BackupPa

Nginx 访问日志轮询切割

默认情况下 Nginx 会把所有的访问日志生成到一个指定的访问日志文件 access.log 里,但这样一来,时间长了就会导致日志个头很大,不利于日志的分析和处理,因此,有必要对 Nginx 日志,按天或按小时进行切割,使其分成不同的文件保存. [[email protected] conf]# cat cut_nginx_log.sh #!/bin/bash Dateformat=`date +%Y%m%d` Basedir="/usr/local/nginx" Nginxlogdi

nginx日志轮巡切割

通过编辑脚本的方式来实现日志每日以及每天的切割纪录.可以通过计划任务的方式实现每天执行脚本,具体情况需要更加实际情况 vim /root/cut_nginx_log.sh #!bin/sh Dateformat='date +%Y%m%d' Basedir="/application/nginx" Nginxlogdir="$Basedir/logs" Logname="access_www" [ -d $Nginxlogdir ]&&a

nginx日志配置,以及日志轮询

一.为nginx配置错误日志 Nginx错误日志是调试nginx的重要手段,属于核心功能模块的参数(ngx_core_module)该参数名字为err_log,是放在Main区块中全局配置 err_log的语法格式以及参数语法说明如下 err_log   file              level(级别) 关键字           日志文件              错误日志级别 其中关键字err_log不能改变 1 1.在配置文件中写入error_log logs/error.log e

Nginx 安装配置 禁止使用IP访问 rewrite重写 别名设置 日志轮询

1.yum install pcre pcre-devel -y#支持rewrite重写功能 2.yum -y install openssl openssl-devel#支持https功能 3.useradd nginx -s /sbin/nologin -M#添加用户 4.tar zxf nginx-1.6.2.tar.gz   cd nginx-1.6.2./configure \--user=nginx --group=nginx \--prefix=/application/nginx

apache日志轮询

日志轮询 方法1 下载cronlog软件 cd /home/lvnian/tools wget http://down1.chinaunix.net/distfiles/cronolog-1.6.2.tar.gz tar xf cronolog-1.6.2.tar.gz cd cronolog-1.6.2 ./configure make && make install ll /usr/local/sbin/cronolog #######3 cronlog系统自带方式.把httpd.co

Linux系统中nginx日志每天定时切割实现方法详解

本文和大家分享的是使用Linux中自带的命令logrotate对Nginx日志进行切割相关实现方法,希望帮助大家更好的学习linux系统. Nginx安装目录:/usr/local/nginx/ Nginx日志目录:/usr/local/nginx/logs/./usr/local/nginx/logs/nginx_logs/ 1.添加nginx日志切割脚本 cd /etc/logrotate.d #进入目录 vi /etc/logrotate.d/nginx #编辑脚本 /usr/local/