`

nginx之访问日志文件自动切割

阅读更多

一,需求背景

       生产环境中的nginx服务器,由于访问日志文件增长快速,这样access_log日志文件过大,会严重影响日志记录性能;同时为了方便对访问日志进行分析,需要对日志进行定时切割。定时切割的方式主要有:按月切割,按天切割,按小时切割等方案,具体切割方案可根据线上服务器访问量来定,一般为按天进行定时切割。

 

二,实现步骤

    手动操作步骤:

#重命名日志文件
 mv /usr/local/nginx/logs/access_log /usr/local/nginx/logs/access_log_20160625.log
#使用Nginx的信号控制USR1重新打开日志文件进行写入
 kill -USR1 Nginx主进程号
 或
 kill -USR1 'cat /usr/local/nginx/logs/nginx.pid'

   

   自动操作步骤:需要借助crontab完成

#步骤1:编辑需要定时执行的shell脚本(脚本需在每天的00:00执行)
  vi /usr/local/nginx/sbin/cut_nginx_log.sh
  脚本内容如下:
  #!/bin/bash
  #Nginx访问日志文件存放路径变量
  nginx_access_log_path="/usr/local/nginx/logs/"
  #定义脚本逻辑
   mkdir -p ${nginx_access_log_path}${date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
 mv ${nginx_access_log_path}access.log ${nginx_access_log_path}${date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
   kill -USR1 'cat /usr/local/nginx/log/nginx.pid'
  
#步骤2:配置crontab定时执行这个脚本
  crontab -e
  输入以下内容并保存:
  00 00 * * * /bin/bash  /usr/local/nginx/sbin/cut_nginx_log.sh

 

分享到:
评论

相关推荐

    Nginx自动日志切割

    Nginx自动日志切割是解决日志文件过大,占用磁盘空间,以及方便历史数据检索的有效手段。 首先,Nginx日志的生成和配置。日志格式可以自定义,例如使用`log_format`指令设置日志模板。如文中的`main`格式,它包含了...

    nginx日志文件切割

    在高访问量的网站环境中,Nginx的日志文件可能会迅速增长,如果不进行适当的切割,可能会导致硬盘空间耗尽,影响服务的正常运行。下面将详细介绍Nginx日志文件切割的相关知识点。 首先,我们需要了解Nginx的日志...

    详解Nginx日志配置及日志切割

    Nginx本身并不提供日志切割的直接功能,但可以通过外部工具如cron结合脚本来实现自动切割。 一个常见的方法是编写一个shell脚本,并将其加入到cron任务中定时执行。脚本中可以使用mv命令移动和重命名现有的日志文件...

    nginx日志按天生成和定期删除日志的方法

    日志文件过大不仅会影响服务器的性能,如访问速度,还可能导致查找特定信息时的困难。本文将详细介绍如何实现Nginx日志按天生成和定期删除,以优化日志管理。 首先,Nginx默认的日志生成方式是将所有访问记录都写入...

    Linux下nginx生成日志自动切割的实现方法

    下面是一个常见的Nginx访问日志格式示例: ```nginx log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $...

    使用awstats分析nginx日志

    为了确保Awstats能够正确分析Nginx的日志文件,需要调整Nginx的配置文件中的日志格式设置。例如,可以定义如下格式: ```nginx log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$...

    nginx访问日志并删除指定天数前的日志记录配置方法

    通过上述配置,可以实现Nginx访问日志的有效管理和维护,及时清理不再需要的老日志文件,保证服务器磁盘空间的合理使用,并且保障日志文件的可读性和可用性。对于大规模网站运营而言,日志文件的管理和分析对提升...

    18个Linux Shell脚本经典案例视频.zip

    nginx访问日志分析脚本 一键查看服务器资源利用率 一键部署LNMP网站平台脚本 批量主机远程执行命令脚本 批量创建100用户并设置密码脚本 批量检测网站是否异常脚本 服务器系统配置初始化脚本 查看网卡实时流量脚本 ...

    Nginx 应用技术指南Nginx Tips【第二版】.zip

    - **日志切割**:学习自动切割日志文件,防止单个日志文件过大。 8. **性能调优** - **性能指标**:理解影响Nginx性能的关键因素,如并发连接数、内存使用等。 - **参数调整**:根据服务器硬件配置和业务需求,...

    nginx日志切割脚本分享

    该脚本采用循环方式对Nginx的日志文件进行切割,并通过信号机制通知Nginx重新打开日志文件,确保日志记录的连续性。 ##### 脚本解析 1. **变量定义**: - `Logs_path`: 指定Nginx日志文件所在的目录。 - `Pid_path...

    linux Nginx 日志脚本

    Nginx日志分析脚本用于对Nginx生成的日志文件进行分析,提取有用的信息,帮助管理员了解网站访问情况,如访问量统计、用户行为分析等。 **脚本内容分析:** 1. **获取Nginx进程信息:** - 通过`ps aux | grep ...

    nginx.conf配置详细说明

    5. 日志切割:利用logrotate工具配合Nginx的log_format,定期自动切割日志。 总结,`nginx.conf`是Nginx的核心配置文件,其配置直接影响Nginx的性能和功能。通过理解配置结构和主要指令,结合实际需求,我们可以...

    Nginx指南 Nginx 服务器

    在日志处理方面,Nginx支持日志切割、使用logrotate处理日志文件、结合Cronolog等工具进行更细致的日志管理,以及根据需要不记录部分日志。 Nginx的缓存服务配置可以用来提高网站访问速度,负载均衡则可以帮助分配...

    9 个实用 Shell 脚本,直接部署,简单实用

    本文档收集了 9 个实用 Shell 脚本,涵盖 Dos 攻击防范、Linux 系统发送告警、MySQL 数据库备份、Nginx 访问访问日志切割等多个方面。 1. Dos 攻击防范(自动屏蔽攻击 IP) 该脚本用于自动屏蔽攻击 IP,保护服务器...

    Nginx手册(手册中文版)

    - **日志切割**:通过定时任务或配置指令,可以自动分割并归档日志文件。 8. **性能优化** - **超时设置**:调整连接超时、读写超时等参数,避免资源浪费。 - **最大连接数**:设置最大并发连接数,平衡资源使用...

    Nginx 应用技术指南

    logrotate是一个常用的日志管理工具,可以用来自动切割、压缩和删除旧的日志文件。 **12.3 Nginx and Cronolog** Cronolog是另一种日志切割工具,可以按照日期自动分割日志文件。 **12.4 Nginx如何不记录部分日志*...

    实战Nginx取代Apache的高性能Web服务器_文字版

    2. 日志切割:使用外部工具如logrotate定期切割和压缩日志文件,节省磁盘空间。 3. 日志优化:关闭无用的日志记录,减少不必要的I/O操作。 七、性能调优 1. 工作模式:选择合适的事件模型,如epoll(Linux)或...

    AWStats+JAWStats快速构建Nginx日志分析系统

    此外,考虑到网站的流量较大,为了提高服务器性能和减少日志文件大小,建议每天进行一次 Nginx 日志的切割。下面是一个示例命令: ```bash vim /etc/logrotate.d/nginx /usr/local/nginx/logs/*.log { daily ...

Global site tag (gtag.js) - Google Analytics